[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-2409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18047536#comment-18047536
 ] 

Oleg Kalnichevski commented on HTTPCLIENT-2409:
-----------------------------------------------

[~snicoll] No, i do not know it already. Problems of the Spring HTTP 
abstraction is a problem of Spring. But one does not need to put those few 
lines into an interceptor. It was merely a convenience.
{code:java}
ClassicHttpResponse response = httpclient.executeOpen(null, request, null);
try {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        if (entity.getContentLength() != -1) {
            response.setHeader(HttpHeaders.CONTENT_LENGTH, 
entity.getContentLength());
        } else {
            response.removeHeaders(HttpHeaders.CONTENT_LENGTH);
        }
        if (entity.getContentType() != null) {
            response.setHeader(HttpHeaders.CONTENT_TYPE, 
entity.getContentType());
        } else {
            response.removeHeaders(HttpHeaders.CONTENT_TYPE);
        }
        if (entity.getContentEncoding() != null) {
            response.setHeader(HttpHeaders.CONTENT_ENCODING, 
entity.getContentEncoding());
        } else {
            response.removeHeaders(HttpHeaders.CONTENT_ENCODING);
        }
    }
    // do something useful
} finally {
    response.close();
}
{code}
Oleg

> Content-Length header not removed/modified when decompressing
> -------------------------------------------------------------
>
>                 Key: HTTPCLIENT-2409
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2409
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>    Affects Versions: 5.6
>            Reporter: Cristian Vat
>            Priority: Major
>
> When decompressing gzip or other compression schemes the Content-Length 
> header is not modified/removed anymore as it was before, this can lead to 
> unexpected behaviors like truncation depending on caller behavior.
>  
> Originally thought it was a spring issue with RestClient as 
> https://github.com/spring-projects/spring-framework/issues/36064
> Summary:
>  * Content-Encoding: gzip
>  * Content-Length: 9075
>  * actual read content if reading fully: 56815
>  
> It's a combination of Spring and HttpClient behaviors but it lead to 
> truncation at the compressed content length.
> I checked JDK HttpClient and Jetty HttpClient and they remove the 
> Content-Length header if doing decompression.
> The same seems to have been the case in HttpComponents HttpClient but then 
> the code that removed the headers was removed on 20th October in 
> [https://github.com/apache/httpcomponents-client/commit/56122fd33fb8a67d23369a81f6e1d89aabf4ba10]
>  ?
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to