Package org.apache.http.impl
Class BHttpConnectionBase
java.lang.Object
org.apache.http.impl.BHttpConnectionBase
- All Implemented Interfaces:
Closeable,AutoCloseable,HttpConnection,HttpInetConnection
- Direct Known Subclasses:
DefaultBHttpClientConnection,DefaultBHttpServerConnection
This class serves as a base for all
HttpConnection implementations
and provides functionality common to both client and server HTTP connections.- Since:
- 4.0
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBHttpConnectionBase(int bufferSize, int fragmentSizeHint, CharsetDecoder charDecoder, CharsetEncoder charEncoder, MessageConstraints messageConstraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy) Creates new instance of BHttpConnectionBase. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanawaitInput(int timeout) protected voidBinds this connection to the givenSocket.voidclose()Closes this connection gracefully.protected InputStreamcreateInputStream(long len, SessionInputBuffer inBuffer) protected OutputStreamcreateOutputStream(long len, SessionOutputBuffer outbuffer) protected voiddoFlush()protected voidintReturns a collection of connection metrics.intprotected SessionInputBufferprotected SessionOutputBufferprotected Socketprotected InputStreamgetSocketInputStream(Socket socket) protected OutputStreamgetSocketOutputStream(Socket socket) intReturns the socket timeout value.protected voidprotected voidbooleanisOpen()Checks if this connection is open.booleanisStale()Checks whether this connection has gone down.protected HttpEntityprepareInput(HttpMessage message) protected OutputStreamprepareOutput(HttpMessage message) voidsetSocketTimeout(int timeout) Sets the socket timeout value.voidshutdown()Force-closes this connection.toString()
-
Constructor Details
-
BHttpConnectionBase
protected BHttpConnectionBase(int bufferSize, int fragmentSizeHint, CharsetDecoder charDecoder, CharsetEncoder charEncoder, MessageConstraints messageConstraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy) Creates new instance of BHttpConnectionBase.- Parameters:
bufferSize- buffer size. Must be a positive number.fragmentSizeHint- fragment size hint.charDecoder- decoder to be used for decoding HTTP protocol elements. Ifnullsimple type cast will be used for byte to char conversion.charEncoder- encoder to be used for encoding HTTP protocol elements. Ifnullsimple type cast will be used for char to byte conversion.messageConstraints- Message constraints. IfnullMessageConstraints.DEFAULTwill be used.incomingContentStrategy- incoming content length strategy. IfnullLaxContentLengthStrategy.INSTANCEwill be used.outgoingContentStrategy- outgoing content length strategy. IfnullStrictContentLengthStrategy.INSTANCEwill be used.
-
-
Method Details
-
ensureOpen
- Throws:
IOException
-
getSocketInputStream
- Throws:
IOException
-
getSocketOutputStream
- Throws:
IOException
-
bind
Binds this connection to the givenSocket. This socket will be used by the connection to send and receive data.After this method's execution the connection status will be reported as open and the
isOpen()will returntrue.- Parameters:
socket- the socket.- Throws:
IOException- in case of an I/O error.
-
getSessionInputBuffer
-
getSessionOutputBuffer
-
doFlush
- Throws:
IOException
-
isOpen
public boolean isOpen()Description copied from interface:HttpConnectionChecks if this connection is open.- Specified by:
isOpenin interfaceHttpConnection- Returns:
- true if it is open, false if it is closed.
-
getSocket
-
createOutputStream
-
prepareOutput
- Throws:
HttpException
-
createInputStream
-
prepareInput
- Throws:
HttpException
-
getLocalAddress
- Specified by:
getLocalAddressin interfaceHttpInetConnection
-
getLocalPort
public int getLocalPort()- Specified by:
getLocalPortin interfaceHttpInetConnection
-
getRemoteAddress
- Specified by:
getRemoteAddressin interfaceHttpInetConnection
-
getRemotePort
public int getRemotePort()- Specified by:
getRemotePortin interfaceHttpInetConnection
-
setSocketTimeout
public void setSocketTimeout(int timeout) Description copied from interface:HttpConnectionSets the socket timeout value.- Specified by:
setSocketTimeoutin interfaceHttpConnection- Parameters:
timeout- timeout value in milliseconds
-
getSocketTimeout
public int getSocketTimeout()Description copied from interface:HttpConnectionReturns the socket timeout value.- Specified by:
getSocketTimeoutin interfaceHttpConnection- Returns:
- positive value in milliseconds if a timeout is set,
0if timeout is disabled or-1if timeout is undefined.
-
shutdown
Description copied from interface:HttpConnectionForce-closes this connection. This is the only method of a connection which may be called from a different thread to terminate the connection. This method will not attempt to flush the transmitter's internal buffer prior to closing the underlying socket.- Specified by:
shutdownin interfaceHttpConnection- Throws:
IOException
-
close
Description copied from interface:HttpConnectionCloses this connection gracefully. This method will attempt to flush the internal output buffer prior to closing the underlying socket. This method MUST NOT be called from a different thread to force shutdown of the connection. Useshutdowninstead.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceHttpConnection- Throws:
IOException
-
awaitInput
- Throws:
IOException
-
isStale
public boolean isStale()Description copied from interface:HttpConnectionChecks whether this connection has gone down. Network connections may get closed during some time of inactivity for several reasons. The next time a read is attempted on such a connection it will throw an IOException. This method tries to alleviate this inconvenience by trying to find out if a connection is still usable. Implementations may do that by attempting a read with a very small timeout. Thus this method may block for a small amount of time before returning a result. It is therefore an expensive operation.- Specified by:
isStalein interfaceHttpConnection- Returns:
trueif attempts to use this connection are likely to succeed, orfalseif they are likely to fail and this connection should be closed
-
incrementRequestCount
protected void incrementRequestCount() -
incrementResponseCount
protected void incrementResponseCount() -
getMetrics
Description copied from interface:HttpConnectionReturns a collection of connection metrics.- Specified by:
getMetricsin interfaceHttpConnection- Returns:
- HttpConnectionMetrics
-
toString
-