Java 读取HttpServeltRequest正文,其中请求头为;接受编码:gzip,deflate“;在爪哇
我试图从Java 读取HttpServeltRequest正文,其中请求头为;接受编码:gzip,deflate“;在爪哇,java,servlets,httprequest,Java,Servlets,Httprequest,我试图从HttpServletRequest读取正文,但正文未显示 HttpServletRequest包含以下信息 body: id=8652976&event=test&payload[chargify]=testing headers: Content-Type: application/x-www-form-urlencoded X-Chargify-Webhook-Signature: ed57683a9d8a3f25869dbf138ce5c66f A
HttpServletRequest
读取正文,但正文未显示
HttpServletRequest
包含以下信息
body: id=8652976&event=test&payload[chargify]=testing
headers:
Content-Type: application/x-www-form-urlencoded
X-Chargify-Webhook-Signature: ed57683a9d8a3f25869dbf138ce5c66f
Accept: "*/*; q=0.5, application/xml"
X-Chargify-Webhook-Id: "8652976"
Accept-Encoding: gzip, deflate
Content-Length: "47"
我试图使用以下代码读取请求正文。但是在inStream.readLine()
处给出空值
if ("gzip".equalsIgnoreCase(request.getHeader("Accept-Encoding"))) {
GZIPInputStream gzipInputStream = new GZIPInputStream(request.getInputStream());
Reader decoder = new InputStreamReader(gzipInputStream, "UTF-8");
BufferedReader br = new BufferedReader(decoder);
String inputLine;
while ((inputLine = br.readLine()) != null) {
body.append(inputLine).append(System.getProperty("line.separator"));
}
gzipInputStream.close();
} else {
InputStreamReader input = new InputStreamReader(request.getInputStream());
BufferedReader inStream = new BufferedReader(input);
String inputLine;
while ((inputLine = inStream.readLine()) != null) {
body.append(inputLine).append(System.getProperty("line.separator"));
}
inStream.close();
}
有更简单的方法来处理和保存您从所有这些锅炉板代码 检查 为了 下面是一个示例代码,说明使用这个库是多么容易
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();
// Parse the request
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
FileItemStream item = iter.next();
String name = item.getFieldName();
InputStream stream = item.openStream();
if (item.isFormField()) {
System.out.println("Form field " + name + " with value "
+ Streams.asString(stream) + " detected.");
} else {
System.out.println("File field " + name + " with file name "
+ item.getName() + " detected.");
// Process the input stream
...
}
}
问题的标题与正文中的问题不匹配。请澄清。