Ответ фильтра, возвращающий только часть содержимого - PullRequest
0 голосов
/ 04 марта 2019

У меня есть метод ниже, который извлекает ответ и упаковывает его в класс-оболочку.

С помощью отладчика я вижу, что responseContent имеет полное содержимое, как и должно быть, но когда этона экран выводится только часть запроса.

Я вижу, что переменная data имеет все значение, как и должно быть.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper((HttpServletResponse) response);
    chain.doFilter(request, responseWrapper);
    String responseContent = new String(responseWrapper.getContentAsByteArray());
    BasicResponse<Object> fullResponse = new BasicResponse<>();
    fullResponse.setData(new ObjectMapper().readValue(responseContent, Object.class));
    String data = new ObjectMapper().writeValueAsString(fullResponse);
    response.getWriter().write(data);//data has the entire value
    response.getWriter().close();
}

1 Ответ

0 голосов
/ 04 марта 2019

Скорее всего, заголовок ответа Content-Length установлен со значением ниже, чем новая длина данных.Обязательно установите для этого заголовка новое значение, соответствующее новой длине данных.

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