hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Consuming chunk encoded data
Date Thu, 10 Oct 2013 11:56:57 GMT
On Thu, 2013-10-10 at 16:47 +0700, Alexey Panchenko wrote:
> Hi,
> 
> Would it be possible to use HttpAsyncClient for this task, e.g. like here
> http://hc.apache.org/httpcomponents-asyncclient-dev/httpasyncclient/examples/org/apache/http/examples/nio/client/AsyncClientHttpExchangeStreaming.java
>  ?
> 
> Regards,
> Alex
> 

I do not think so. While I _suspect_ this _might_ work for smaller
chunks that fit into the session input buffer in their entirety I am
absolutely sure this approach would fail for large chunks. At any rate
the design would be too brittle to be used for anything remotely
serious.

Oleg

> 
> 
> On Thu, Oct 10, 2013 at 3:21 PM, Oleg Kalnichevski <olegk@apache.org> wrote:
> 
> > On Wed, 2013-10-09 at 13:58 -0400, Chun Tat David Chu wrote:
> > > Hi all,
> > >
> > > Is there an utility or a technique in HTTP Client that allows you to
> > > consume chunk encoded data whenever one chunk arrived on the wire?
> >  Perhaps
> > > I overlooked this but I couldn't find anything related with this topic.
> > >
> > > Here's what coming in over the wire.
> > > HttpResponseHandlerImpl.setContentType(): application/json
> > > HttpResponseHandlerImpl.setContentLength(): -1
> > > 58495 [main] DEBUG org.apache.http.wire  - << "24[\r][\n]"
> > > 58495 [main] DEBUG org.apache.http.wire  - <<
> > > "{"firstName":"David","lastName":"0"}"
> > > 58495 [main] DEBUG org.apache.http.wire  - << "[\r][\n]"
> > > 58495 [main] DEBUG org.apache.http.wire  - << "24[\r][\n]"
> > > 58495 [main] DEBUG org.apache.http.wire  - <<
> > > "{"firstName":"David","lastName":"1"}"
> > > 58495 [main] DEBUG org.apache.http.wire  - << "[\r][\n]"
> > > 58495 [main] DEBUG org.apache.http.wire  - << "24[\r][\n]"
> > > 58495 [main] DEBUG org.apache.http.wire  - <<
> > > "{"firstName":"David","lastName":"2"}"
> > > 58501 [main] DEBUG org.apache.http.wire  - << "[\r][\n]"
> > > 58501 [main] DEBUG org.apache.http.wire  - << "0[\r][\n]"
> > > 58501 [main] DEBUG org.apache.http.wire  - << "[\r][\n]"
> > >
> > > What I want to do is to process a chunk at a time.  Is there any helper
> > > method that allows you to do this? or I just need to get the InputStream
> > > and do this manually?  Manually as in get the chunk size then read the
> > > buffer based on the chunk size.
> > >
> > > Thanks!
> > >
> > > David
> >
> > David,
> > Chunk coding as well as other transfer encoding schemes are supposed to
> > be completely transparent to the application layer and therefore
> > HttpClient exposes no API related to transfer encodings.
> >
> > If you are absolutely convinced that you have no other option but to
> > misuse / abuse HTTP protocol in this way, you will have to implement
> > your own APIs that interact directly with the SessionInputBuffer of the
> > underlying HTTP connection.
> >
> > Oleg
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > For additional commands, e-mail: httpclient-users-help@hc.apache.org
> >
> >



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


Mime
View raw message