有没有办法从JavaServlet处理程序获取原始http请求流?
我正在尝试进行一些日志记录,以捕获到达我的应用程序的原始http请求。我的Java代码在SpringMVC控制器中。我有权访问“HttpServletRequest”对象。但是我找不到一种方法来从中提取原始http请求流。有一个读者,但只阅读文章内容。我想要的是整个shebang、url、标题和正文。有没有一个简单的方法可以做到这一点有没有办法从JavaServlet处理程序获取原始http请求流?,java,http,request,Java,Http,Request,我正在尝试进行一些日志记录,以捕获到达我的应用程序的原始http请求。我的Java代码在SpringMVC控制器中。我有权访问“HttpServletRequest”对象。但是我找不到一种方法来从中提取原始http请求流。有一个读者,但只阅读文章内容。我想要的是整个shebang、url、标题和正文。有没有一个简单的方法可以做到这一点 提前谢谢 不,servlet不提供api来获取原始请求——为此,您可能需要像wireshark这样的嗅探器 您可以通过以下方式获取已解析的请求头和uri:
提前谢谢 不,servlet不提供api来获取原始请求——为此,您可能需要像wireshark这样的嗅探器 您可以通过以下方式获取已解析的请求头和uri:
另外,如果您想长时间保持登录,您可能需要自己通过调用HttpServletRequestAPI和日志头等来解决问题。RequestDumperValve生成的输出太多,并转储所有请求,而不仅仅是坏请求。我在部署在Tomcat 5.5上的Web应用程序中读取了原始请求
我所要做的就是通过servlet/Spring控制器读取HttpServletRequest 仅使用request.getInputStream()
它必须是请求的第一个API方法。在任何筛选器或其他命令开始批量处理导致Web服务器完全读取的请求之前
这种方法有什么问题?谢谢您提供的信息。我想要实现的是,当出现错误/错误请求时,只需记录完整的请求。我将按照nos的建议执行。
request.getInputStream()
将只获取请求的正文,而不获取标题。OP想要“整个shebang、url、标题和正文”。事实上,我听说ASP有一个神奇的解决方案:Request.ServerVariables[“ALL_RAW”],但这不是一个Java Servlet。哦,好吧。