在@JAX-RS中,使用@FormParam注释的方法参数始终为null

时间:2016-04-05 15:19:31

标签: jax-rs

我正在尝试使用POST将多个表单参数发送到我的REST服务器。但客户端发送的参数始终为null

@POST
@Path("/login")
@Produces({ "application/json" })
public LoginData userLogin(@FormParam("picture") String picture, 
                           @FormParam("name") String name, 
                           @FormParam("email") String email) {
    ...
}

当我删除所有参数时,如下面的代码,它可以正常工作:

@POST
@Path("/login")
@Produces({ "application/json" })
public LoginData userLogin() {
    ...
}

我已经检查过,客户端发送的值不是null

接收参数有不同的方法吗?

1 个答案:

答案 0 :(得分:1)

使用@Consumes(MediaType.APPLICATION_FORM_URLENCODED)注释您的方法:

@POST
@Path("/login")
@Produces(MediaType.JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public LoginData userLogin(@FormParam("picture") String picture, 
                           @FormParam("name") String name, 
                           @FormParam("email") String email) {

    ...
}

确保请求的Content-Typeapplication/x-www-form-urlencoded