如何拦截Spring MVC序列化响应?
How to intercept Spring MVC serialized response?
我想在请求结束时拦截 Spring servlet 响应。我的意思是,我想做的是记录服务响应,即 json 哪些服务 returns 和 statusCode。这就是我要记录的全部内容。
为此,我已经尝试过像这样使用 HandlerInterceptorAdapter
public class ResponseLoggerInterceptor
extends HandlerInterceptorAdapter {
private static final Logger LOGGER = LoggerFactory.getLogger(ResponseLoggerInterceptor.class);
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
LOGGER.info("Intercepted");
super.postHandle(request, response, handler, modelAndView);
}
}
那个"handler"对象是对象respose,但是没有序列化。你知道我必须在哪里以及如何拦截最后的 servlet 响应吗?提前致谢
您将需要一个 'HttpResponse' 对象
并且会建议您使用 'afterCompletion' 方法
我想在请求结束时拦截 Spring servlet 响应。我的意思是,我想做的是记录服务响应,即 json 哪些服务 returns 和 statusCode。这就是我要记录的全部内容。
为此,我已经尝试过像这样使用 HandlerInterceptorAdapter
public class ResponseLoggerInterceptor
extends HandlerInterceptorAdapter {
private static final Logger LOGGER = LoggerFactory.getLogger(ResponseLoggerInterceptor.class);
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
LOGGER.info("Intercepted");
super.postHandle(request, response, handler, modelAndView);
}
}
那个"handler"对象是对象respose,但是没有序列化。你知道我必须在哪里以及如何拦截最后的 servlet 响应吗?提前致谢
您将需要一个 'HttpResponse' 对象 并且会建议您使用 'afterCompletion' 方法