Package org.apache.hc.core5.http.impl.io
Class DefaultBHttpClientConnection
java.lang.Object
org.apache.hc.core5.http.impl.io.BHttpConnectionBase
org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection
- All Implemented Interfaces:
Closeable,AutoCloseable,HttpConnection,BHttpConnection,HttpClientConnection,SocketModalCloseable,ModalCloseable
- Direct Known Subclasses:
LoggingBHttpClientConnection
public class DefaultBHttpClientConnection
extends BHttpConnectionBase
implements HttpClientConnection
Default implementation of
HttpClientConnection.- Since:
- 4.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate final ContentLengthStrategyprivate final ContentLengthStrategyprivate final HttpMessageWriter<ClassicHttpRequest> private final ResponseOutOfOrderStrategyprivate final HttpMessageParser<ClassicHttpResponse> Fields inherited from class org.apache.hc.core5.http.impl.io.BHttpConnectionBase
connMetrics, endpointDetails, http1Config, inBuffer, outbuffer, socketHolderRef, version -
Constructor Summary
ConstructorsConstructorDescriptionDefaultBHttpClientConnection(Http1Config http1Config) DefaultBHttpClientConnection(Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder) DefaultBHttpClientConnection(Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory, HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory) Creates new instance of DefaultBHttpClientConnection.DefaultBHttpClientConnection(Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, ResponseOutOfOrderStrategy responseOutOfOrderStrategy, HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory, HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory) Creates new instance of DefaultBHttpClientConnection. -
Method Summary
Modifier and TypeMethodDescriptionvoidBinds this connection to the givenSocket.booleanChecks whether this connection is in a consistent state.protected voidonRequestSubmitted(ClassicHttpRequest request) protected voidonResponseReceived(ClassicHttpResponse response) voidreceiveResponseEntity(ClassicHttpResponse response) Receives the next response entity available from this connection and attaches it to an existing HttpResponse object.Receives the request line and headers of the next response available from this connection.voidsendRequestEntity(ClassicHttpRequest request) Sends the request entity over the connection.voidsendRequestHeader(ClassicHttpRequest request) Sends the request line and all headers over the connection.voidterminateRequest(ClassicHttpRequest request) Terminates request prematurely potentially leaving the connection in a inconsistent state.Methods inherited from class org.apache.hc.core5.http.impl.io.BHttpConnectionBase
awaitInput, bind, close, close, createContentInputStream, createContentOutputStream, createIncomingEntity, ensureOpen, flush, getEndpointDetails, getLocalAddress, getProtocolVersion, getRemoteAddress, getSocketHolder, getSocketTimeout, getSSLSession, incrementRequestCount, incrementResponseCount, isDataAvailable, isOpen, isStale, setSocketTimeout, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.hc.core5.http.io.BHttpConnection
flush, isDataAvailable, isStaleMethods inherited from interface org.apache.hc.core5.http.HttpConnection
close, getEndpointDetails, getLocalAddress, getProtocolVersion, getRemoteAddress, getSSLSession, isOpenMethods inherited from interface org.apache.hc.core5.io.ModalCloseable
closeMethods inherited from interface org.apache.hc.core5.http.SocketModalCloseable
getSocketTimeout, setSocketTimeout
-
Field Details
-
responseParser
-
requestWriter
-
incomingContentStrategy
-
outgoingContentStrategy
-
responseOutOfOrderStrategy
-
consistent
private volatile boolean consistent
-
-
Constructor Details
-
DefaultBHttpClientConnection
public DefaultBHttpClientConnection(Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, ResponseOutOfOrderStrategy responseOutOfOrderStrategy, HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory, HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory) Creates new instance of DefaultBHttpClientConnection.- Parameters:
http1Config- Message http1Config. IfnullHttp1Config.DEFAULTwill be used.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.incomingContentStrategy- incoming content length strategy. IfnullDefaultContentLengthStrategy.INSTANCEwill be used.outgoingContentStrategy- outgoing content length strategy. IfnullDefaultContentLengthStrategy.INSTANCEwill be used.responseOutOfOrderStrategy- response out of order strategy. IfnullNoResponseOutOfOrderStrategy.INSTANCEwill be used.requestWriterFactory- request writer factory. IfnullDefaultHttpRequestWriterFactory.INSTANCEwill be used.responseParserFactory- response parser factory. IfnullDefaultHttpResponseParserFactory.INSTANCEwill be used.
-
DefaultBHttpClientConnection
public DefaultBHttpClientConnection(Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory, HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory) Creates new instance of DefaultBHttpClientConnection.- Parameters:
http1Config- Message http1Config. IfnullHttp1Config.DEFAULTwill be used.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.incomingContentStrategy- incoming content length strategy. IfnullDefaultContentLengthStrategy.INSTANCEwill be used.outgoingContentStrategy- outgoing content length strategy. IfnullDefaultContentLengthStrategy.INSTANCEwill be used.requestWriterFactory- request writer factory. IfnullDefaultHttpRequestWriterFactory.INSTANCEwill be used.responseParserFactory- response parser factory. IfnullDefaultHttpResponseParserFactory.INSTANCEwill be used.
-
DefaultBHttpClientConnection
public DefaultBHttpClientConnection(Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder) -
DefaultBHttpClientConnection
-
-
Method Details
-
onResponseReceived
-
onRequestSubmitted
-
bind
Description copied from class:BHttpConnectionBaseBinds 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
BHttpConnectionBase.isOpen()will returntrue.- Overrides:
bindin classBHttpConnectionBase- Parameters:
socket- the socket.- Throws:
IOException- in case of an I/O error.
-
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:
HttpException- in case of HTTP protocol violationIOException- in case of an I/O error
-
sendRequestEntity
Description copied from interface:HttpClientConnectionSends the request entity over the connection.- Specified by:
sendRequestEntityin interfaceHttpClientConnection- Parameters:
request- the request whose entity to send.- Throws:
HttpException- in case of HTTP protocol violationIOException- in case of an I/O error
-
isConsistent
public boolean isConsistent()Description copied from interface:HttpClientConnectionChecks whether this connection is in a consistent state.- Specified by:
isConsistentin interfaceHttpClientConnection- Returns:
trueif the connection is known to be in a inconsistent state and cannot be re-used.- See Also:
-
terminateRequest
Description copied from interface:HttpClientConnectionTerminates request prematurely potentially leaving the connection in a inconsistent state.- Specified by:
terminateRequestin interfaceHttpClientConnection- Parameters:
request- the request to be terminated prematurely.- Throws:
HttpExceptionIOException- See Also:
-
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 or
nullif the connection has been closed by the opposite endpoint. - Throws:
HttpException- in case of HTTP protocol violationIOException- in case of an I/O error
-
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:
HttpException- in case of HTTP protocol violationIOException- in case of an I/O error
-