如何使用ContentCachingResponseWrapper来读取httpServletResponse?

时间:2017-08-19 03:43:24

标签: spring spring-mvc spring-boot

我想在我的拦截器中读取响应主体以进行日志记录。在我搜索了一些答案之后,我倾向于使用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

0 个答案:

没有答案