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 <[email protected]> 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: [email protected] > > For additional commands, e-mail: [email protected] > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
