我正在尝试获取HttpServletRequest的内容。我正是这样做的:
// Extract the request content
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
String content = "";
try {
InputStream inputStream = request.getInputStream();
if (inputStream != null) {
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
char[] charBuffer = new char[128];
int bytesRead = -1;
while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
stringBuilder.append(charBuffer, 0, bytesRead);
}
} else {
stringBuilder.append("");
}
} catch (IOException ex) {
throw ex;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
throw ex;
}
}
}
content = stringBuilder.toString();
System.out.println("Length: " + request.getContentLength());
字符串“content”为空。但是,最后一行显示
长度:53
这正是我期待的内容的长度。如果有帮助,这就是我触发这个servlet的方法:
wget --post-data='{"imei":"351553012623446","hni":"310150","wdp":false}' http://localhost:8080/test/forward
答案 0 :(得分:2)
// Extract the post content from the request
@SuppressWarnings("unchecked")
Enumeration<String> paramEnum = request.getParameterNames();
paramEnum.hasMoreElements();
String postContent = (String) paramEnum.nextElement();
感谢大家的回复!