Package org.apache.http.impl.nio
Class DefaultNHttpClientConnection
- java.lang.Object
-
- org.apache.http.impl.nio.NHttpConnectionBase
-
- org.apache.http.impl.nio.DefaultNHttpClientConnection
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,HttpConnection
,HttpInetConnection
,IOControl
,NHttpClientConnection
,NHttpClientIOTarget
,NHttpConnection
,SessionBufferStatus
,SocketAccessor
public class DefaultNHttpClientConnection extends NHttpConnectionBase implements NHttpClientIOTarget
Default implementation of theNHttpClientConnection
interface.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description protected NHttpMessageWriter<HttpRequest>
requestWriter
protected NHttpMessageParser<HttpResponse>
responseParser
-
Fields inherited from class org.apache.http.impl.nio.NHttpConnectionBase
connMetrics, contentDecoder, contentEncoder, context, hasBufferedInput, hasBufferedOutput, inbuf, incomingContentStrategy, inTransportMetrics, outbuf, outgoingContentStrategy, outTransportMetrics, remote, request, response, session, status
-
Fields inherited from interface org.apache.http.nio.NHttpConnection
ACTIVE, CLOSED, CLOSING
-
-
Constructor Summary
Constructors Constructor Description DefaultNHttpClientConnection(IOSession session, int bufferSize)
DefaultNHttpClientConnection(IOSession session, int bufferSize, int fragmentSizeHint, ByteBufferAllocator allocator, java.nio.charset.CharsetDecoder charDecoder, java.nio.charset.CharsetEncoder charEncoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, NHttpMessageWriterFactory<HttpRequest> requestWriterFactory, NHttpMessageParserFactory<HttpResponse> responseParserFactory)
Creates new instance DefaultNHttpClientConnection given the underlying I/O session.DefaultNHttpClientConnection(IOSession session, int bufferSize, java.nio.charset.CharsetDecoder charDecoder, java.nio.charset.CharsetEncoder charEncoder, MessageConstraints constraints)
DefaultNHttpClientConnection(IOSession session, HttpResponseFactory responseFactory, ByteBufferAllocator allocator, HttpParams params)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
consumeInput(NHttpClientEventHandler handler)
void
consumeInput(NHttpClientHandler handler)
Triggered when the connection is ready to consume input.protected NHttpMessageWriter<HttpRequest>
createRequestWriter(SessionOutputBuffer buffer, HttpParams params)
Deprecated.(4.3) use constructor.protected NHttpMessageParser<HttpResponse>
createResponseParser(SessionInputBuffer buffer, HttpResponseFactory responseFactory, HttpParams params)
Deprecated.(4.3) use constructor.boolean
isRequestSubmitted()
Returnstrue
if an HTTP request has been submitted to the target server.protected void
onRequestSubmitted(HttpRequest request)
protected void
onResponseReceived(HttpResponse response)
void
produceOutput(NHttpClientEventHandler handler)
void
produceOutput(NHttpClientHandler handler)
Triggered when the connection is ready to produce output.void
resetInput()
Resets input state.void
resetOutput()
Resets output state.void
submitRequest(HttpRequest request)
SubmitsHttpRequest
to be sent to the target server.-
Methods inherited from class org.apache.http.impl.nio.NHttpConnectionBase
assertNotClosed, bind, close, createConnectionMetrics, createContentDecoder, createContentEncoder, createIncomingContentStrategy, createOutgoingContentStrategy, createTransportMetrics, getContext, getHttpRequest, getHttpResponse, getLocalAddress, getLocalPort, getMetrics, getRemoteAddress, getRemotePort, getSocket, getSocketTimeout, getStatus, hasBufferedInput, hasBufferedOutput, isOpen, isStale, prepareDecoder, prepareEncoder, requestInput, requestOutput, setSocketTimeout, shutdown, suspendInput, suspendOutput, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.http.HttpConnection
close, getMetrics, getSocketTimeout, isOpen, isStale, setSocketTimeout, shutdown
-
Methods inherited from interface org.apache.http.nio.IOControl
requestInput, requestOutput, shutdown, suspendInput, suspendOutput
-
Methods inherited from interface org.apache.http.nio.NHttpConnection
getContext, getHttpRequest, getHttpResponse, getStatus
-
-
-
-
Field Detail
-
responseParser
protected final NHttpMessageParser<HttpResponse> responseParser
-
requestWriter
protected final NHttpMessageWriter<HttpRequest> requestWriter
-
-
Constructor Detail
-
DefaultNHttpClientConnection
@Deprecated public DefaultNHttpClientConnection(IOSession session, HttpResponseFactory responseFactory, ByteBufferAllocator allocator, HttpParams params)
Creates a new instance of this class given the underlying I/O session.- Parameters:
session
- the underlying I/O session.responseFactory
- HTTP response factory.allocator
- byte buffer allocator.params
- HTTP parameters.
-
DefaultNHttpClientConnection
public DefaultNHttpClientConnection(IOSession session, int bufferSize, int fragmentSizeHint, ByteBufferAllocator allocator, java.nio.charset.CharsetDecoder charDecoder, java.nio.charset.CharsetEncoder charEncoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, NHttpMessageWriterFactory<HttpRequest> requestWriterFactory, NHttpMessageParserFactory<HttpResponse> responseParserFactory)
Creates new instance DefaultNHttpClientConnection given the underlying I/O session.- Parameters:
session
- the underlying I/O session.bufferSize
- buffer size. Must be a positive number.fragmentSizeHint
- fragment size hint.allocator
- memory allocator. Ifnull
HeapByteBufferAllocator.INSTANCE
will be used.charDecoder
- decoder to be used for decoding HTTP protocol elements. Ifnull
simple type cast will be used for byte to char conversion.charEncoder
- encoder to be used for encoding HTTP protocol elements. Ifnull
simple type cast will be used for char to byte conversion.constraints
- Message constraints. Ifnull
MessageConstraints.DEFAULT
will be used.incomingContentStrategy
- incoming content length strategy. Ifnull
LaxContentLengthStrategy.INSTANCE
will be used.outgoingContentStrategy
- outgoing content length strategy. Ifnull
StrictContentLengthStrategy.INSTANCE
will be used.- Since:
- 4.3
-
DefaultNHttpClientConnection
public DefaultNHttpClientConnection(IOSession session, int bufferSize, java.nio.charset.CharsetDecoder charDecoder, java.nio.charset.CharsetEncoder charEncoder, MessageConstraints constraints)
- Since:
- 4.3
-
DefaultNHttpClientConnection
public DefaultNHttpClientConnection(IOSession session, int bufferSize)
- Since:
- 4.3
-
-
Method Detail
-
createResponseParser
@Deprecated protected NHttpMessageParser<HttpResponse> createResponseParser(SessionInputBuffer buffer, HttpResponseFactory responseFactory, HttpParams params)
Deprecated.(4.3) use constructor.Creates an instance ofNHttpMessageParser
to be used by this connection for parsing incomingHttpResponse
messages.This method can be overridden in a super class in order to provide a different implementation of the
NHttpMessageParser
interface.- Returns:
- HTTP response parser.
-
createRequestWriter
@Deprecated protected NHttpMessageWriter<HttpRequest> createRequestWriter(SessionOutputBuffer buffer, HttpParams params)
Deprecated.(4.3) use constructor.Creates an instance ofNHttpMessageWriter
to be used by this connection for writing out outgoingHttpRequest
messages.This method can be overridden by a super class in order to provide a different implementation of the
NHttpMessageWriter
interface.- Returns:
- HTTP response parser.
-
onResponseReceived
protected void onResponseReceived(HttpResponse response)
- Since:
- 4.2
-
onRequestSubmitted
protected void onRequestSubmitted(HttpRequest request)
- Since:
- 4.2
-
resetInput
public void resetInput()
Description copied from interface:NHttpClientConnection
Resets input state. This method can be used to prematurely terminate processing of the incoming HTTP response.- Specified by:
resetInput
in interfaceNHttpClientConnection
-
resetOutput
public void resetOutput()
Description copied from interface:NHttpClientConnection
Resets output state. This method can be used to prematurely terminate processing of the outgoing HTTP request.- Specified by:
resetOutput
in interfaceNHttpClientConnection
-
consumeInput
public void consumeInput(NHttpClientEventHandler handler)
-
produceOutput
public void produceOutput(NHttpClientEventHandler handler)
-
submitRequest
public void submitRequest(HttpRequest request) throws java.io.IOException, HttpException
Description copied from interface:NHttpClientConnection
SubmitsHttpRequest
to be sent to the target server.- Specified by:
submitRequest
in interfaceNHttpClientConnection
- Parameters:
request
- HTTP request- Throws:
java.io.IOException
- if I/O error occurs while submitting the requestHttpException
- if the HTTP request violates the HTTP protocol.
-
isRequestSubmitted
public boolean isRequestSubmitted()
Description copied from interface:NHttpClientConnection
Returnstrue
if an HTTP request has been submitted to the target server.- Specified by:
isRequestSubmitted
in interfaceNHttpClientConnection
- Returns:
true
if an HTTP request has been submitted,false
otherwise.
-
consumeInput
public void consumeInput(NHttpClientHandler handler)
Description copied from interface:NHttpClientIOTarget
Triggered when the connection is ready to consume input.- Specified by:
consumeInput
in interfaceNHttpClientIOTarget
- Parameters:
handler
- the client protocol handler.
-
produceOutput
public void produceOutput(NHttpClientHandler handler)
Description copied from interface:NHttpClientIOTarget
Triggered when the connection is ready to produce output.- Specified by:
produceOutput
in interfaceNHttpClientIOTarget
- Parameters:
handler
- the client protocol handler.
-
-