Sven Zethelius created HTTPASYNC-106:
----------------------------------------

             Summary: HttpRequestInterceptor and HttpResponseInterceptor don't 
allow entity manipulation
                 Key: HTTPASYNC-106
                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-106
             Project: HttpComponents HttpAsyncClient
          Issue Type: Improvement
    Affects Versions: 4.1.1
            Reporter: Sven Zethelius


Examples show how to do GZIP compression in sync HttpClient ( 
https://hc.apache.org/httpcomponents-client-4.2.x/httpclient/examples/org/apache/http/examples/client/ClientGZipContentCompression.java),
 but even thought AsyncHttpClient supports registering the same 
HttpRequestInterceptor and HttpResponseInterceptor they can only modify the 
headers.  Doing any modification of the entity, which is necessary to do 
compression ends up being ignored.  

In HttpRequestInterceptor, this is because A) BasicAsyncRequestProducer is 
registerd early in the lifecycle with a reference to the original request 
entity which it uses to write the content.  B) The wrapping request entity 
passed to the interceptor doesn't pass calls to setEntity back to the request 
it's wrapping.

In HttpResponseInterceptor, the entity of the HttpResponse is bypassed 
completely by BasicAsyncResponseConsumer.

This means clients of AsyncHttpClient have no way to intercept the message.

My request is that there needs to be a way to intercept and manipulate the 
request bytes in/out so that compression can be implemented.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to