On Tue, 2005-10-18 at 10:19 -0400, Peter Lynch wrote: > I am using HTTPClient and I am getting the following exception: > > > > 2005-10-18 10:13:34,738 ERROR HttpMethodBase - I/O failure reading response > body > > java.io.IOException: chunked stream ended unexpectedly > > at > org.apache.commons.httpclient.ChunkedInputStream.getChunkSizeFromInputStream > (ChunkedInputStream.java:234) > > at > org.apache.commons.httpclient.ChunkedInputStream.nextChunk(ChunkedInputStrea > m.java:205) > > at > org.apache.commons.httpclient.ChunkedInputStream.read(ChunkedInputStream.jav > a:160) > > at java.io.FilterInputStream.read(FilterInputStream.java:109) > > at > org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream > .java:110) > > at java.io.FilterInputStream.read(FilterInputStream.java:88) > > at > org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream > .java:129) > > at > org.apache.commons.httpclient.HttpMethodBase.getResponseBody(HttpMethodBase. > java:702) > > > > I can see most of the page in the wire trace log. I am not interested in > either displaying the page or in making sure I get everything on the page. > I am only interested in pulling a single bit of information from the page. > The wire trace log seems to display the information I need 100% of the time > but I seem unable to get any of the response body. Any ideas? >
Peter, You are not able to get the response body because the content sent by the server appears malformed (incorrectly chunk-encoded). HttpClient always attempts to read responses in their entirety in order to be able to reuse the connection. If a response is not fully consumed the connection used to transmit it cannot be reused for obvious reasons. In this particular situation you may want to consume the response as InputStream (by using HttpMethod#getResponseBodyAsSteam instead of HttpMethod#getResponseBody that buffers the entire response body in memory and returns it as array of bytes), read as much of it as you see fit, and than call HttpMethod#abort() to abnormally terminate the connection Hope this helps Oleg > > > Thanks, > > Peter > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
