在Jersey中使用HttpServletRequest获取正文内容

时间:2011-07-03 03:20:32

标签: post jersey

我正在使用Jersey 1.7,我试图通过我的方法访问请求正文,与此问题非常相似: How do I read POST parameters for a RESTful service using Jersey? 身体价值正常,电子邮件地址为email=xx@ws.com&密码= test1

我尝试使用@Context HttpServletRequest请求并尝试使用request.getParameter(“email”)访问该电子邮件,但什么都没得到。 request.getparameterMap()中也没有任何内容。

我的API如下所示: @POST @Produces(...) public Response getData(@FormParam(“email”)String email,@ FormParam(“password”)String password,String body,@ Context HttpServletRequest request){....

我尝试改变String body的位置并请求但无济于事。

String主体获得的值非常好(它来自iPhone设备,而不是通过Form Submit,因此显示在String主体中)。现在,我正在尝试解析正文内容(email=xx@ws.com& password = test1)并将每个变量都像电子邮件一样输出,但这很痛苦。

有没有办法使用request.getParameter(“email”)获取值?

或者是否有任何快速实用工具将正文内容转换为String email和String password?

TIA, 维杰

1 个答案:

答案 0 :(得分:3)

我自己从未使用过表单参数,但文档说它应该永远有效:

@POST
@Consumes("application/x-www-form-urlencoded")
public void post(MultivaluedMap<String, String> formParams) {
    // Store the message
}

http://wikis.sun.com/display/Jersey/Overview+of+JAX-RS+1.0+Features