Java:从HTTP POST获取参数和正文

时间:2012-04-26 12:08:34

标签: java http http-headers http-post httprequest

我想从http帖子中读取帖子参数和正文。

实施例: 如果您发布到网址:http://localhost/controller?sign=true。 在帖子中,身体中还有json数据。

{"transaction": 
    {"user":[
        {"name": "Anna"}]
    }
}

获取参数是通过 public java.lang.String getParameter(java.lang.String name)

身体可以通过检索 public ServletInputStream getInputStream()抛出java.io.IOException

但是你如何掌握参数和身体? 因为如果我在getInputStream之前调用getParameter,结果将在inputStream上为-1。

1 个答案:

答案 0 :(得分:1)

我相信在getParameter(String name)的覆盖下,正在读取ServletInputStream以获取这些参数。如果您要将POST数据与URL参数混合(我假设sign = true是您提到的参数),请使用HttpServletRequest.getQueryString()来获取URL参数,那么您仍然应该能够用getInputStream()读取正文。但是,您可能必须解析查询字符串以获取您正在查找的信息。

编辑:我忘了添加原来的答案,当读取ServletInputStream时,无法再次读取。如果需要多次使用流中的数据,则必须存储它。

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html