@FormParam参数在我的JAX-RS资源服务中始终为null

时间:2013-05-07 11:45:14

标签: java http jax-rs resteasy form-parameter

这是我用curl请求的服务:

time curl -i -XPOST 'http://localhost:9080/my/service' -H "Authorization:OAuth MyToken" -H "Content-Type: application/json" -d "ids=516816b2e4b039526a235e2f,516816b2e4b039526a235e2f"

资源:

@Path("/my")
@Consumes({"application/xml", "application/json"})
@Produces({"application/xml", "application/json", "text/json"})
@Restricted
public class MyResource {

    @POST
    @Path("/service")
    public Map<String ,Object> myService(@FormParam("ids") String myIds) {
       // service things
    }
}

该服务运行良好,但突然失败了。现在参数myIds总是为null,而curl的结果是400个错误请求... 我没有更改此资源中的任何内容,因此它仍然可以正常工作。 如果有人有想法,请告诉我。 谢谢!

1 个答案:

答案 0 :(得分:5)

curl - 命令中,您将发布表单数据和Content-Type: application/json。显然,这些数据不是有效的JSON,因此有400个错误的请求。

如果您要发布表单数据,则需要使用内容类型application/x-www-form-urlencoded