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
ヘッダは、新たなデータの長さよりも低い値に設定されています。新しいデータ長と一致する新しい値でこのヘッダを設定してください。