从HttpServletRequest获取原始请求字符串

Jai*_*cia 14 java jsf servlets

是否可以从HttpServletRequest对象获取原始HTTP请求?我希望尽可能将原始请求视为String.

我需要获取请求的全文,在这种情况下,它是一个POST请求,因此URL没有帮助.它也是多部分表单的一部分,所以我不能只调用"getParameterNames()"或"getParameterValues()".

谢谢,

小智 9

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

ServletInputStream in = request.getInputStream();
Run Code Online (Sandbox Code Playgroud)

然后使用readInputStream 的常规方法.

希望有所帮助.

  • 这只会读取 *body*,而不是 HTTP 请求的标头。 (3认同)

McD*_*ell 0

听起来您需要一个servlet 过滤器。没有标准的处理方法,因此在包装 HttpServletRequestmultipart/form-data时必须注意适当缓存此数据。

  • 注意:这个答案不再准确。Servlet 3.0 (JEE6) 引入了对“multipart/form-data”的支持。http://download.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html (3认同)