Hello,
English is not my native language; please excuse typing errors.
I use HttpClient 4.5.12.
I found that despite a cache hit, the CachingHttpClient returns null, if the
content-length header was missing in the original response. It worked fine
after forcing the server to add the content-length header, but this isn't
possible in case of chunked transfer encoding.
I looked into the source code and found, that the content-length header of a
subsequent response is merged into the cache entry's response headers, if the
content-length header was missing in the original response. In case of a 304
content-length=0 is merged into the cache entry and this causes returning null
instead of the cached entity.
In CachedHttpResponseGenerator I found the following method:
private void addMissingContentLengthHeader(final HttpResponse response,
final HttpEntity entity) {
if (transferEncodingIsPresent(response)) {
return;
}
// Some well known proxies respond with Content-Length=0, when
returning 304. For robustness, always
// use the cached entity's content length, as modern browsers do.
final Header contentLength = new BasicHeader(HTTP.CONTENT_LEN,
Long.toString(entity.getContentLength()));
response.setHeader(contentLength);
}
Obviously, this method adds a missing content length header, but not in case of
chunked transfer encoding. How can I solve this?
Thanks in advance and best regards,
Dirk Henselin
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]