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:
    Closeable, AutoCloseable, HttpConnection, HttpInetConnection, IOControl, NHttpClientConnection, NHttpClientIOTarget, NHttpConnection, SessionBufferStatus, SocketAccessor

      @NotThreadSafe
      public class DefaultNHttpClientConnection
      extends NHttpConnectionBase
      implements NHttpClientIOTarget

  Default implementation of the `NHttpClientConnection` interface.
  Since:
    4.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and 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 and Description
    `DefaultNHttpClientConnection(IOSession session, HttpResponseFactory responseFactory, ByteBufferAllocator allocator, HttpParams params)` Deprecated. (4.3) use `DefaultNHttpClientConnection( IOSession, int, int, ByteBufferAllocator, CharsetDecoder, CharsetEncoder, MessageConstraints, ContentLengthStrategy, ContentLengthStrategy, NHttpMessageWriterFactory, NHttpMessageParserFactory)`
    `DefaultNHttpClientConnection(IOSession session, int buffersize)`
    `DefaultNHttpClientConnection(IOSession session, int buffersize, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints)`
    `DefaultNHttpClientConnection(IOSession session, int buffersize, int fragmentSizeHint, ByteBufferAllocator allocator, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, NHttpMessageWriterFactory<HttpRequest> requestWriterFactory, NHttpMessageParserFactory<HttpResponse> responseParserFactory)` Creates new instance DefaultNHttpClientConnection given the underlying I/O session.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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()` Returns `true` 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)` Submits `HttpRequest` 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.nio.NHttpConnection

      `getContext, getHttpRequest, getHttpResponse, getStatus`

    - ### 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`

- - ### 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)

      Deprecated. (4.3) use `DefaultNHttpClientConnection( IOSession, int, int, ByteBufferAllocator, CharsetDecoder, CharsetEncoder, MessageConstraints, ContentLengthStrategy, ContentLengthStrategy, NHttpMessageWriterFactory, NHttpMessageParserFactory)`
      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,
                                      CharsetDecoder chardecoder,
                                      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. If `null` `HeapByteBufferAllocator.INSTANCE` will be used.
        `chardecoder` - decoder to be used for decoding HTTP protocol elements. If `null` simple type cast will be used for byte to char conversion.
        `charencoder` - encoder to be used for encoding HTTP protocol elements. If `null` simple type cast will be used for char to byte conversion.
        `constraints` - Message constraints. If `null` `MessageConstraints.DEFAULT` will be used.
        `incomingContentStrategy` - incoming content length strategy. If `null` `LaxContentLengthStrategy.INSTANCE` will be used.
        `outgoingContentStrategy` - outgoing content length strategy. If `null` `StrictContentLengthStrategy.INSTANCE` will be used.
      Since:
        4.3

    - #### DefaultNHttpClientConnection

          public DefaultNHttpClientConnection(IOSession session,
                                      int buffersize,
                                      CharsetDecoder chardecoder,
                                      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 of `NHttpMessageParser` to be used by this connection for parsing incoming `HttpResponse` 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 of `NHttpMessageWriter` to be used by this connection for writing out outgoing `HttpRequest` 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 interface `NHttpClientConnection`

    - #### 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 interface `NHttpClientConnection`

    - #### consumeInput

          public void consumeInput(NHttpClientEventHandler handler)

    - #### produceOutput

          public void produceOutput(NHttpClientEventHandler handler)

    - #### submitRequest

          public void submitRequest(HttpRequest request)
                             throws IOException,
                                    HttpException

      Description copied from interface: `NHttpClientConnection`
      Submits `HttpRequest` to be sent to the target server.
      Specified by:
        `submitRequest` in interface `NHttpClientConnection`
      Parameters:
        `request` - HTTP request
      Throws:
        `IOException` - if I/O error occurs while submitting the request
        `HttpException` - if the HTTP request violates the HTTP protocol.

    - #### isRequestSubmitted

          public boolean isRequestSubmitted()

      Description copied from interface: `NHttpClientConnection`
      Returns `true` if an HTTP request has been submitted to the target server.
      Specified by:
        `isRequestSubmitted` in interface `NHttpClientConnection`
      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 interface `NHttpClientIOTarget`
      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 interface `NHttpClientIOTarget`
      Parameters:
        `handler` - the client protocol handler.

Copyright © 2005–2013 The Apache Software Foundation. All rights reserved.