我想在我的拦截器中读取响应主体以进行日志记录。在我搜索了一些答案之后,我倾向于使用ContentCachingResponseWrapper
。这是我的代码:
public class CustomerInterceptor extends HandlerInterceptorAdapter{
public void poseHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
byte[] contentAsByteArray = responseWrapper.getContentAsByteArray();
...
}
但是当我调试它时。我得到了带有内容“”的responseWrapper。但是在邮递员中我得到了响应主体。然后我转到源代码。
private final FastByteArrayOutputStream content = new FastByteArrayOutputStream(1024);
public ContentCachingResponseWrapper(HttpServletResponse response) {
super(response);
}
似乎我没有初始化内容。我知道我的代码中有问题。我的问题是如何正确使用ContentCachingResponseWrapper
?