コンテンツの一部のみを返すフィルタ応答

SexyMF:

私は、応答を抽出し、ラッパークラスでそれをラップし、以下の方法があります。

デバッガでは、私はそれを見ることができ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();
}
チャールズDowbecki:

最も可能性の高いレスポンスContent-Lengthヘッダは、新たなデータの長さよりも低い値に設定されています。新しいデータ長と一致する新しい値でこのヘッダを設定してください。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=214897&siteId=1