ContentCachingResponseWrapper: Как получить объект ответа приложения (не httpResponse), используя ContentCachingResponseWrapper - PullRequest
0 голосов
/ 24 марта 2020

Использование перехватчиков для проверки запросов в Spring Web. Я расширил HandlerInterceptorAdapter для реализации метода postHandle. Я хочу проверить значение внутри объекта ответа приложения и, соответственно, выполнить какое-то действие.

Я пытался получить IOUtils, чтобы получить объект ответа приложения, но получил строку "".

public class XYZInterceptor extends HandlerInterceptorAdapter {

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

    ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
    ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request);

    // need to retrieve application response object

    return;
  }

}

1 Ответ

0 голосов
/ 06 апреля 2020

Пройдя много документов и изучив, я понял, что входной поток / выходной пар может быть доступен только один раз. Объект ответа уже записал бы поток вывода где-нибудь еще до того, как достигнет postHandler. Таким образом, выходной поток пуст в объекте ответа postHandle.

Если вы хотите sh получить доступ к объекту ответа в postHandle, это установить атрибут атрибута объекта запроса с фактическим объектом ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...