getInputStream()、getReader()
上面两种方法获取的是Http请求包的包体,因为GET方式请求一般不包含包体.所以上面两种方法一般用于POST请求获取参数.
需要注意的是:
request.getParameter()、 request.getInputStream()、request.getReader()这三种方法是有冲突的,因为流只能被读一次。
方法一
private static String getPostData(HttpServletRequest request) {
StringBuffer data = new StringBuffer();
String line = null;
BufferedReader reader = null;
try {
reader = request.getReader();
while (null != (line = reader.readLine()))
data.append(line);
} catch (IOException e) {
} finally {
}
return data.toString();
}
方法二
在Java 8中,您可以使用简单干净的方法:
if ("POST".equalsIgnoreCase(request.getMethod()))
{
test = req.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
}
博客介绍了Java中getInputStream()和getReader()方法,可用于POST请求获取Http请求包体参数。同时指出request.getParameter()、request.getInputStream()、request.getReader()三种方法有冲突,因流只能读一次,还提及Java 8中有简单干净的方法。
5153

被折叠的 条评论
为什么被折叠?



