0

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

示例:如果您发布到 url:http://localhost/controller?sign=true。在帖子中,正文中还有 json 数据。

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

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

并且可以通过 public ServletInputStream getInputStream() throws java.io.IOException 来检索正文

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

4

1 回答 1

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

于 2012-04-26T14:12:06.373 回答