我有一个向Java servlet发送POST请求的javascript库,但是在doPost
方法中,我似乎无法获得请求负载的内容。在chrome开发人员工具中,所有内容都在headers选项卡中的Request Payload部分,内容就在那里,我知道帖子是由doPost方法接收的,但它是空白的。
对于HttpServletRequest
对象,我可以通过什么方式获取请求负载中的数据?
执行request.getParameter()
或request.getAttributes()
都以没有数据结束
发布于 2013-02-15 07:27:54
String payloadRequest = getBody(request);
使用此方法
public static String getBody(HttpServletRequest request) throws IOException {
String body = null;
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
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;
}
}
}
body = stringBuilder.toString();
return body;
}
发布于 2014-09-02 14:44:04
您可以使用Buffer Reader from request进行读取
// Read from request
StringBuilder buffer = new StringBuilder();
BufferedReader reader = request.getReader();
String line;
while ((line = reader.readLine()) != null) {
buffer.append(line);
buffer.append(System.lineSeparator());
}
String data = buffer.toString()
发布于 2015-02-07 08:20:53
Java 8流
String body = request.getReader().lines()
.reduce("", (accumulator, actual) -> accumulator + actual);
https://stackoverflow.com/questions/14525982
复制相似问题