|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
java.io.DataInputStream
rabbit.io.HTTPInputStream
public class HTTPInputStream
This is an extended DataInputStream suitable for reading data from the web. It handles chunked encoding etc. If the underlying input is chunked this class will throw away any trailing footer.
Field Summary |
---|
Fields inherited from class java.io.FilterInputStream |
---|
in |
Constructor Summary | |
---|---|
HTTPInputStream(java.io.InputStream is,
Logger logger)
Create a new HTTPInputStream on the underlying stream. |
|
HTTPInputStream(java.nio.channels.SocketChannel socket,
boolean connected,
Logger logger,
NLSOHandler nlsoHandler)
Create a new HTTPInputStream on the underlying channel |
Method Summary | |
---|---|
boolean |
chunked()
Get the chunked value. |
void |
close()
|
long |
dataSize()
Get the size of the page being read. |
protected void |
finish()
|
protected int |
getChunkSize()
Get the size of the next chunk. |
java.io.InputStream |
getChunkStream()
Get the chunked page. |
java.nio.channels.FileChannel |
getFileChannel()
Try to get a file channel from this stream. |
boolean |
getKeepAlive()
Get the keep alive value. |
java.nio.channels.SocketChannel |
getSocketChannel()
Try to get a socket channel from this stream. |
void |
readCRLF()
Read of an CR LF combination. |
HTTPHeader |
readHTTPHeader()
Read a HTTPHeader of this stream. |
HTTPHeader |
readHTTPHeader(boolean response)
Read a HTTPHeader of this stream. |
void |
setChunked(boolean b)
Set the chunkin of this stream. |
void |
setKeepAlive(boolean keepalive)
Set the keep alive value to currentkeepalive & keepalive |
protected void |
verifyResponse()
Verify that the response starts with "HTTP/" Failure to verify response => treat all of data as content = HTTP/0.9. |
Methods inherited from class java.io.DataInputStream |
---|
read, read, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, readUTF, skipBytes |
Methods inherited from class java.io.FilterInputStream |
---|
available, mark, markSupported, read, reset, skip |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public HTTPInputStream(java.io.InputStream is, Logger logger)
is
- the underlying streampublic HTTPInputStream(java.nio.channels.SocketChannel socket, boolean connected, Logger logger, NLSOHandler nlsoHandler) throws java.io.IOException
socket
- the socket to use.connected
- false if there is a asynchronous connection pending, true
if the socket is fully connected
java.io.IOException
Method Detail |
---|
public HTTPHeader readHTTPHeader() throws java.io.IOException
java.io.IOException
- if the HTTPHeader could not be read correctly.public HTTPHeader readHTTPHeader(boolean response) throws java.io.IOException
response
- if true a response will be read. If the underlying
stream does not start with HTTP/ a newly created http response header will
be returned and the bytes read will be pushed back onto the stream.
java.io.IOException
- if the HTTPHeader could not be read correctly.protected void verifyResponse() throws java.io.IOException
java.io.IOException
public boolean getKeepAlive()
public void setKeepAlive(boolean keepalive)
keepalive
- the new keepalive value.public boolean chunked()
public void setChunked(boolean b)
b
- the new chunking value.public long dataSize()
protected int getChunkSize() throws java.io.IOException
java.io.IOException
- if the chunk size could not be read correctly.public void readCRLF() throws java.io.IOException
java.io.IOException
- if the CR LF combination could not be read correctly.public java.io.InputStream getChunkStream() throws java.io.IOException
java.io.IOException
protected void finish()
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in class java.io.FilterInputStream
java.io.IOException
public java.nio.channels.FileChannel getFileChannel()
public java.nio.channels.SocketChannel getSocketChannel()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |