Как получить контент от HttpServletReponse в весенних загрузочных перехватчиках - PullRequest
0 голосов
/ 30 октября 2019
public class ActivityLogInterceptor extends HandlerInterceptorAdapter {
public ActivityLogInterceptor() {
    super();
}

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    return super.preHandle(request, response, handler);
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    // I need the response here that has been returned in the rest api
    super.postHandle(request, response, handler, modelAndView);
}

}

Это Springboot HandlerInterceptorAdapter, мне нужно тело ответа в postHandle, которое было отправлено остальными API. Я пробовал выходной поток, который не работает, я получаю нулевое значение при попытке преобразовать в объект.

enter image description here

пожалуйста, проверьте изображение выше для методов HttpServletResponseгде я не мог найти содержимое или тело для получения точного ответа, даже ModelView имеет значение null.

Ответы [ 2 ]

0 голосов
/ 30 октября 2019
@Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
        System.out.println(responseWrapper.getContentAsByteArray());
        super.postHandle(request, response, handler, modelAndView);
    }

ContentCachingResponseWrapper - для получения контента с ServletResponse. Я мог видеть результат ответа в чванстве из REST API, но когда я попытался напечатать его, длина содержимого равна 0.

enter image description here

. результат от остальных API, но когда я попытался получить содержимое в перехватчиках, пусто и длина содержимого равна 0.

0 голосов
/ 30 октября 2019

это должно сработать:

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    final PrintWriter writer = response.getWriter();
    System.out.println(writer.toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...