hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sven Zethelius (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HTTPASYNC-106) HttpRequestInterceptor and HttpResponseInterceptor don't allow entity manipulation
Date Wed, 20 Apr 2016 19:36:25 GMT
Sven Zethelius created HTTPASYNC-106:

             Summary: HttpRequestInterceptor and HttpResponseInterceptor don't allow entity
                 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

To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

View raw message