Java ContentCachingRequestWrapper仅捕获内容类型为application/x-www-form-urlencoded的POST请求
我试图截获所有传入的HTTP请求,并在我的SpringMVC(不是SpringBoot)应用程序中处理附加到这些请求的正文。为了实现这个“入站拦截器”,我使用Spring的接口。一旦请求被拦截,我将尝试按如下方式检索正文:Java ContentCachingRequestWrapper仅捕获内容类型为application/x-www-form-urlencoded的POST请求,java,spring,spring-mvc,servlets,Java,Spring,Spring Mvc,Servlets,我试图截获所有传入的HTTP请求,并在我的SpringMVC(不是SpringBoot)应用程序中处理附加到这些请求的正文。为了实现这个“入站拦截器”,我使用Spring的接口。一旦请求被拦截,我将尝试按如下方式检索正文: ContentCachingRequestWrapper requestWrapper=新ContentCachingRequestWrapper(请求); Map params=requestWrapper.getParameterMap(); byte[]body=req
ContentCachingRequestWrapper requestWrapper=新ContentCachingRequestWrapper(请求);
Map params=requestWrapper.getParameterMap();
byte[]body=requestWrapper.getContentAsByteArray();
鉴于此,尝试以这种方式提取尸体的局限性如下:
x-www-form-urlencoded
POST
除了日志记录之外,您甚至可以对请求执行完全不同的操作。您所说的“处理”是什么意思?您想在Spring MVC处理此更改的正文之前更改正文吗?@SvenDöring不更改正文。我有几个自定义的日志类,我正在尝试使用。谢谢你的建议,我会尝试一下。尽管目前为止,我已经找到了
OncePerRequestFilter
和ContentCachingWrappers
的组合,它可以很好地捕获请求()所需的所有内容,而不需要使用任何专用库