Nicholas DiPiazza created HTTPCLIENT-1854:
---------------------------------------------
Summary: Cannot peek contents of
org.apache.http.conn.EofSensorInputStream
Key: HTTPCLIENT-1854
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1854
Project: HttpComponents HttpClient
Issue Type: Bug
Affects Versions: 4.5.2
Reporter: Nicholas DiPiazza
I am trying to peek at an input stream contents from HttpClient, up to 64k
bytes.
The stream comes from an HttpGet, nothing unusual about it:
{code}
HttpGet requestGet = new HttpGet(encodedUrl);
HttpResponse httpResponse = httpClient.execute(requestGet);
int status = httpResponse.getStatusLine().getStatusCode();
if (status == HttpStatus.SC_OK) {
return httpResponse.getEntity().getContent();
}
{code}
The input stream it returns is of type org.apache.http.conn.EofSensorInputStream
Our use-case is such that we need to "peek" at the first (up to 64k) bytes of
the input stream. I use an algorithm described here How do I peek at the first
two bytes in an InputStream?
{code}
PushbackInputStream pis = new PushbackInputStream(inputStream,
DEFAULT_PEEK_BUFFER_SIZE);
byte [] peekBytes = new byte[DEFAULT_PEEK_BUFFER_SIZE];
int read = pis.read(peekBytes);
if (read < DEFAULT_PEEK_BUFFER_SIZE) {
byte[] trimmed = new byte[read];
System.arraycopy(peekBytes, 0, trimmed, 0, read);
peekBytes = trimmed;
}
pis.unread(peekBytes);
{code}
When I use a ByteArrayInputStream, this works with no problem.
When using the org.apache.http.conn.EofSensorInputStream I only get a small
number of bytes at the beginning of the stream. usually around 400 bytes. When
I expected up to 64k bytes.
I also tried using a BufferedInputStream where I read up to the first 64k bytes
then call a .reset() but that doesn't work either. Same issue.
Why might this be? I do not think anything is closing the stream because if you
call IOUtils.toString(inputStream) I do get all the content.
See
https://stackoverflow.com/questions/44474191/is-it-possible-to-peek-httpclients-org-apache-http-conn-eofsensorinputstream
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]