Package org.apache.http.impl
Class AbstractHttpClientConnection
java.lang.Object
org.apache.http.impl.AbstractHttpClientConnection
- All Implemented Interfaces:
HttpClientConnection,HttpConnection
- Direct Known Subclasses:
SocketHttpClientConnection
public abstract class AbstractHttpClientConnection extends Object implements HttpClientConnection
Abstract client-side HTTP connection capable of transmitting and receiving data
using arbitrary
SessionInputBuffer and SessionOutputBuffer- Since:
- 4.0
- Version:
- $Revision: 627457 $
- Author:
- Oleg Kalnichevski
-
Constructor Summary
Constructors Constructor Description AbstractHttpClientConnection() -
Method Summary
Modifier and Type Method Description protected abstract voidassertOpen()protected EntityDeserializercreateEntityDeserializer()protected EntitySerializercreateEntitySerializer()protected HttpResponseFactorycreateHttpResponseFactory()protected HttpMessageWritercreateRequestWriter(SessionOutputBuffer buffer, HttpParams params)protected HttpMessageParsercreateResponseParser(SessionInputBuffer buffer, HttpResponseFactory responseFactory, HttpParams params)protected voiddoFlush()voidflush()Writes out all pending buffered data over the open connection.HttpConnectionMetricsgetMetrics()Returns a collection of connection metrcisprotected voidinit(SessionInputBuffer inbuffer, SessionOutputBuffer outbuffer, HttpParams params)booleanisResponseAvailable(int timeout)Checks if response data is available from the connection.booleanisStale()Checks whether this connection has gone down.voidreceiveResponseEntity(HttpResponse response)Receives the next response entity available from this connection and attaches it to an existing HttpResponse object.HttpResponsereceiveResponseHeader()Receives the request line and headers of the next response available from this connection.voidsendRequestEntity(HttpEntityEnclosingRequest request)Sends the request entity over the connection.voidsendRequestHeader(HttpRequest request)Sends the request line and all headers over the connection.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.http.HttpConnection
close, getSocketTimeout, isOpen, setSocketTimeout, shutdown
-
Constructor Details
-
AbstractHttpClientConnection
public AbstractHttpClientConnection()
-
-
Method Details
-
assertOpen
- Throws:
IllegalStateException
-
createEntityDeserializer
-
createEntitySerializer
-
createHttpResponseFactory
-
createResponseParser
protected HttpMessageParser createResponseParser(SessionInputBuffer buffer, HttpResponseFactory responseFactory, HttpParams params) -
createRequestWriter
-
init
-
isResponseAvailable
Description copied from interface:HttpClientConnectionChecks if response data is available from the connection. May wait for the specified time until some data becomes available. Note that some implementations may completely ignore the timeout parameter.- Specified by:
isResponseAvailablein interfaceHttpClientConnection- Parameters:
timeout- the maximum time in milliseconds to wait for data- Returns:
- true if data is available; false if there was no data available
even after waiting for
timeoutmilliseconds. - Throws:
IOException- if an error happens on the connection
-
sendRequestHeader
Description copied from interface:HttpClientConnectionSends the request line and all headers over the connection.- Specified by:
sendRequestHeaderin interfaceHttpClientConnection- Parameters:
request- the request whose headers to send.- Throws:
HttpExceptionIOException
-
sendRequestEntity
public void sendRequestEntity(HttpEntityEnclosingRequest request) throws HttpException, IOExceptionDescription copied from interface:HttpClientConnectionSends the request entity over the connection.- Specified by:
sendRequestEntityin interfaceHttpClientConnection- Parameters:
request- the request whose entity to send.- Throws:
HttpExceptionIOException
-
doFlush
- Throws:
IOException
-
flush
Description copied from interface:HttpClientConnectionWrites out all pending buffered data over the open connection.- Specified by:
flushin interfaceHttpClientConnection- Throws:
IOException
-
receiveResponseHeader
Description copied from interface:HttpClientConnectionReceives the request line and headers of the next response available from this connection. The caller should examine the HttpResponse object to find out if it should try to receive a response entity as well.- Specified by:
receiveResponseHeaderin interfaceHttpClientConnection- Returns:
- a new HttpResponse object with status line and headers initialized.
- Throws:
HttpExceptionIOException
-
receiveResponseEntity
Description copied from interface:HttpClientConnectionReceives the next response entity available from this connection and attaches it to an existing HttpResponse object.- Specified by:
receiveResponseEntityin interfaceHttpClientConnection- Parameters:
response- the response to attach the entity to- Throws:
HttpExceptionIOException
-
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
-
getMetrics
Description copied from interface:HttpConnectionReturns a collection of connection metrcis- Specified by:
getMetricsin interfaceHttpConnection- Returns:
- HttpConnectionMetrics
-