从 HttpServletRequest 获取原始请求字符串

2022-09-03 07:12:09

是否可以从 HttpServletRequest 对象获取原始 HTTP 请求?如果可能的话,我想将原始请求视为字符串。

我需要获取请求的全文,在本例中是 POST 请求,因此 URL 没有帮助。它也是多部分形式的一部分,所以我不能只调用“getParameterNames()”或“getParameterValues()”。

谢谢


答案 1

您可以通过执行以下操作来读取原始 HTTP 请求:

ServletInputStream in = request.getInputStream();

然后使用输入流的常规方法。read

希望有所帮助。


答案 2

好吧,这听起来像是你在做某种故障排除。为什么不在查看原始表单数据时删除多部分表单组件。您可以使用以下 JSP 代码段来构造表单数据。

<%
Enumeration en = request.getParameterNames();
String str = "";
while(en.hasMoreElements()){
   String paramName = (String)en.nextElement();
   String paramValue = request.getParameter(paramName);
   str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue);
}
if (str.length()>0)
   str = str.substring(1);
%>

推荐