Frank Schimmel created HTTPCLIENT-2312:
------------------------------------------
Summary: Response body from returnContent() truncated to 256 bytes
Key: HTTPCLIENT-2312
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2312
Project: HttpComponents HttpClient
Issue Type: Bug
Components: Fluent HC
Affects Versions: 5.3
Reporter: Frank Schimmel
This is a but introduced by [pull request
423|https://github.com/apache/httpcomponents-client/pull/423] addressing
HTTPCLIENT-1756.
The solution for better logging includes the beginning of the response body in
the exception. Unfortunately, this also impacts the response body in _all_
cases, even on success case (200 OK). As a result, returnContent() will only
ever return a String from the first 256 bytes.
This code triggers the bug:
{code:java}
final String jsonResponse =
Request.get("https://www.neowsapp.com/rest/v1/feed/today")
.execute()
.returnContent().asString();
System.out.println(jsonResponse);
System.out.println(jsonResponse.length());{code}
The problem occurs in the overriding ContentResponseHandler#handleResponse()
method. It extracts the response body into a byte array, limiting the length to
MAX_MESSAGE_LENGTH (which is 256).
A better solution would be to modify the overridden method of
AbstractHttpClientResponseHandler and add the truncated body to the exception
thrown there instead of just consuming the response body entity.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]