发送POST时得到null。请有人知道如何在泽西岛使用@HeaderParam通过Angular传递值吗?

我在后端有这个:

 @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Users loginUser(@HeaderParam("username")String username,@HeaderParam("password") String password){
        System.out.println("What happen"+userService.loginService(username, password));
       return userService.loginService(username, password);
    }


并在前端使用Angular:

 $scope.getUserFunction = function () {
      $http({
        method  : 'POST',
        url     : 'http://localhost:8080/JersyBackEnd/resources/login'+data,
        contentType:'application/json',
        data    : {username: "akram",password:"yes"},
      })
        .then(function(data) {
          console.log(data);
        });
    };


由于空数据,我得到204。
有人可以在Jersey中使用HeaderParam,PathParam或FormParm注释来帮助我吗?

最佳答案

data作为请求正文发送。您真正想要的是headers
From the docs



数据– {string|Object} –要作为请求消息数据发送的数据。
标头– {Object} –字符串或函数的映射,这些字符串或函数返回表示HTTP标头的字符串以发送到服务器。如果函数的返回值为null,则不会发送标头。函数接受配置对象作为参数。



例:

$http({
  ...
  headers: {
    username: "akram",
    password: "yes"
  }
})

关于java - 带HeaderParam注释的POST Jersey ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35431536/

10-12 05:51