我想从http post中读取post参数和正文。
示例:如果您发布到url:http://localhost/controller?sign=true。在post中,主体中也有json数据。
{"transaction":
{"user":[
{"name": "Anna"}]
}
}
获取参数是通过公共java.lang.String名称(java.lang.String getParameter)完成的
并且可以通过公共ServletInputStream getInputStream()抛出java.io.IOException来检索正文
但是如何同时掌握参数和主体呢?因为如果我在getInputStream之前调用getParameter,在inputStream上的结果将是-1。
发布于 2012-04-26 22:12:06
我相信在getParameter(字符串名)的掩护下,ServletInputStream正在被读取以获取这些参数。如果您打算混合POST数据和URL参数(我假设sign=true就是您提到的试图获取的参数),使用HttpServletRequest.getQueryString()来获取URL参数,那么您应该仍然能够使用getInputStream()读取正文。但是,您可能必须解析查询字符串才能获得您要查找的信息。
编辑:我忘了在我的原始答案中添加,当ServletInputStream被读取时,它不能被再次读取。如果流中的数据需要多次使用,则必须存储它。
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html
https://stackoverflow.com/questions/10333082
复制相似问题