org.apache.http.impl

## Class DefaultBHttpClientConnection

- java.lang.Object
- - org.apache.http.impl.BHttpConnectionBase
  - - org.apache.http.impl.DefaultBHttpClientConnection

- All Implemented Interfaces:
    Closeable, AutoCloseable, HttpClientConnection, HttpConnection, HttpInetConnection

      @NotThreadSafe
      public class DefaultBHttpClientConnection
      extends BHttpConnectionBase
      implements HttpClientConnection

  Default implementation of `HttpClientConnection`.
  Since:
    4.3

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultBHttpClientConnection(int buffersize)`
    `DefaultBHttpClientConnection(int buffersize, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints)`
    `DefaultBHttpClientConnection(int buffersize, int fragmentSizeHint, CharsetDecoder chardecoder, CharsetEncoder charencoder, MessageConstraints constraints, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, HttpMessageWriterFactory<HttpRequest> requestWriterFactory, HttpMessageParserFactory<HttpResponse> responseParserFactory)` Creates new instance of DefaultBHttpClientConnection.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bind(Socket socket)` Binds this connection to the given `Socket`.
    `void` | `flush()` Writes out all pending buffered data over the open connection.
    `boolean` | `isResponseAvailable(int timeout)` Checks if response data is available from the connection.
    `protected void` | `onRequestSubmitted(HttpRequest request)`
    `protected void` | `onResponseReceived(HttpResponse response)`
    `void` | `receiveResponseEntity(HttpResponse response)` Receives the next response entity available from this connection and attaches it to an existing HttpResponse object.
    `HttpResponse` | `receiveResponseHeader()` Receives the request line and headers of the next response available from this connection.
    `void` | `sendRequestEntity(HttpEntityEnclosingRequest request)` Sends the request entity over the connection.
    `void` | `sendRequestHeader(HttpRequest request)` Sends the request line and all headers over the connection.

    - ### Methods inherited from class org.apache.http.impl.BHttpConnectionBase

      `awaitInput, close, createInputStream, createOutputStream, doFlush, ensureOpen, getLocalAddress, getLocalPort, getMetrics, getRemoteAddress, getRemotePort, getSessionInputBuffer, getSessionOutputBuffer, getSocket, getSocketInputStream, getSocketOutputStream, getSocketTimeout, incrementRequestCount, incrementResponseCount, isOpen, isStale, prepareInput, prepareOutput, setSocketTimeout, shutdown, 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`

- - ### Constructor Detail

    - #### DefaultBHttpClientConnection

          public DefaultBHttpClientConnection(int buffersize,
                                      int fragmentSizeHint,
                                      CharsetDecoder chardecoder,
                                      CharsetEncoder charencoder,
                                      MessageConstraints constraints,
                                      ContentLengthStrategy incomingContentStrategy,
                                      ContentLengthStrategy outgoingContentStrategy,
                                      HttpMessageWriterFactory<HttpRequest> requestWriterFactory,
                                      HttpMessageParserFactory<HttpResponse> responseParserFactory)

      Creates new instance of DefaultBHttpClientConnection.
      Parameters:
        `buffersize` - buffer size. Must be a positive number.
        `fragmentSizeHint` - fragment size hint.
        `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.
        `requestWriterFactory` - request writer factory. If `null` `DefaultHttpRequestWriterFactory.INSTANCE` will be used.
        `responseParserFactory` - response parser factory. If `null` `DefaultHttpResponseParserFactory.INSTANCE` will be used.

    - #### DefaultBHttpClientConnection

          public DefaultBHttpClientConnection(int buffersize,
                                      CharsetDecoder chardecoder,
                                      CharsetEncoder charencoder,
                                      MessageConstraints constraints)

    - #### DefaultBHttpClientConnection

          public DefaultBHttpClientConnection(int buffersize)

  - ### Method Detail

    - #### onResponseReceived

          protected void onResponseReceived(HttpResponse response)

    - #### onRequestSubmitted

          protected void onRequestSubmitted(HttpRequest request)

    - #### bind

          public void bind(Socket socket)
                    throws IOException

      Description copied from class: `BHttpConnectionBase`
      Binds this connection to the given `Socket`. 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 return `true`.
      Overrides:
        `bind` in class `BHttpConnectionBase`
      Parameters:
        `socket` - the socket.
      Throws:
        `IOException` - in case of an I/O error.

    - #### isResponseAvailable

          public boolean isResponseAvailable(int timeout)
                                      throws IOException

      Description copied from interface: `HttpClientConnection`
      Checks 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:
        `isResponseAvailable` in interface `HttpClientConnection`
      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 `timeout` milliseconds.
      Throws:
        `IOException` - if an error happens on the connection

    - #### sendRequestHeader

          public void sendRequestHeader(HttpRequest request)
                                 throws HttpException,
                                        IOException

      Description copied from interface: `HttpClientConnection`
      Sends the request line and all headers over the connection.
      Specified by:
        `sendRequestHeader` in interface `HttpClientConnection`
      Parameters:
        `request` - the request whose headers to send.
      Throws:
        `HttpException` - in case of HTTP protocol violation
        `IOException` - in case of an I/O error

    - #### sendRequestEntity

          public void sendRequestEntity(HttpEntityEnclosingRequest request)
                                 throws HttpException,
                                        IOException

      Description copied from interface: `HttpClientConnection`
      Sends the request entity over the connection.
      Specified by:
        `sendRequestEntity` in interface `HttpClientConnection`
      Parameters:
        `request` - the request whose entity to send.
      Throws:
        `HttpException` - in case of HTTP protocol violation
        `IOException` - in case of an I/O error

    - #### receiveResponseHeader

          public HttpResponse receiveResponseHeader()
                                             throws HttpException,
                                                    IOException

      Description copied from interface: `HttpClientConnection`
      Receives 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:
        `receiveResponseHeader` in interface `HttpClientConnection`
      Returns:
        a new HttpResponse object with status line and headers initialized.
      Throws:
        `HttpException` - in case of HTTP protocol violation
        `IOException` - in case of an I/O error

    - #### receiveResponseEntity

          public void receiveResponseEntity(HttpResponse response)
                                     throws HttpException,
                                            IOException

      Description copied from interface: `HttpClientConnection`
      Receives the next response entity available from this connection and attaches it to an existing HttpResponse object.
      Specified by:
        `receiveResponseEntity` in interface `HttpClientConnection`
      Parameters:
        `response` - the response to attach the entity to
      Throws:
        `HttpException` - in case of HTTP protocol violation
        `IOException` - in case of an I/O error

    - #### flush

          public void flush()
                     throws IOException

      Description copied from interface: `HttpClientConnection`
      Writes out all pending buffered data over the open connection.
      Specified by:
        `flush` in interface `HttpClientConnection`
      Throws:
        `IOException` - in case of an I/O error

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