【问题标题】:Get Json object passed in $http.put request获取 $http.put 请求中传递的 Json 对象
【发布时间】:2017-09-14 19:06:54
【问题描述】:

我是 angularjs 的新手。我正在尝试在 $http.put 请求中发送一个 json 对象,如下所示:

function LoginCtrl($http){
this.login = function(){
  var self = this;
        self.user = {
            username: this.username,
            password: this.password
        }
    $http.put('http://localhost:8086/app/login',self.user).then(function 
successCallback(response) {
      }, function errorCallback(response) {
      })
}
}

我只是想在Rest api中获取这个json对象,其代码如下: @Path("/app") 公共类登录资源 {

public LoginResource() {
}

@PUT
@Path("/login")
@Consumes(MediaType.APPLICATION_JSON)
public Response getUserByName() {
    return Response.status(Response.Status.ACCEPTED).build();
}

我需要将哪些参数传递给这个 getUserByName api?我正在使用下拉向导

如果有人能告诉我如何在码头服务器配置中将 index.html 页面设置为起始页面。

【问题讨论】:

    标签: angularjs json jetty dropwizard


    【解决方案1】:

    首先,在您的 Dropwizard(Jersey) 后端定义您的输入

    public Response getUserByName(User user) { ...
    

    然后您可以将您的 JSON 映射到这样的实体:

    public class User {
       @JsonProperty("name") 
       private String name; }
    

    在 angularJS 中,将 Json 对象作为请求负载传递到 $http.PUT(uri,<JsonObject>)

    【讨论】:

    • 在后端我使用 dropwizard
    • 那么你应该需要@RequestBody注解。在您的请求对象中,您可以使用 @JsonProperty("name") 来映射事物。
    • 实际上我需要在我的 webmethod 中获取请求负载。有办法吗?
    • 我得到了答案,我们只需要创建一个与 JSON 对象的变量同名的 POJO 类,然后将该 POJO 对象传递给 Response.getUserByName
    • 是的,你是对的,或者你可以像上面的例子一样注释它们
    【解决方案2】:
    http.put(url, JSON.stringify(self.user), function (err, response) 
    {
        // do something here
    }
    

    【讨论】:

    • 以及如何在 Response getUserByName 中获取它??
    • 你的意思是放完后你想通过http.get获取记录?
    • 发出请求后,您的数据在数据库中更新。因此获取请求将选择更新的数据。 http.get(url, false, function (err, response) { }
    • 放置后我想在其余的api中获取传递的用户有效负载
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多