org.apache.http.impl

## Class AbstractHttpServerConnection

- java.lang.Object
- - org.apache.http.impl.AbstractHttpServerConnection

All Implemented Interfaces:
  Closeable, AutoCloseable, HttpConnection, HttpServerConnection

Direct Known Subclasses:
  SocketHttpServerConnection

Deprecated.
(4.3) use `DefaultBHttpServerConnection`

    @NotThreadSafe
    @Deprecated
    public abstract class AbstractHttpServerConnection
    extends Object
    implements HttpServerConnection

Abstract server-side HTTP connection capable of transmitting and receiving data using arbitrary `SessionInputBuffer` and `SessionOutputBuffer` implementations.

The following parameters can be used to customize the behavior of this class:

- `CoreProtocolPNames.STRICT_TRANSFER_ENCODING`
- `CoreConnectionPNames.MAX_HEADER_COUNT`
- `CoreConnectionPNames.MAX_LINE_LENGTH`

Since:
  4.0

### Constructor Summary

Constructors
Constructor and Description
`AbstractHttpServerConnection()` Deprecated. Creates an instance of this class.

### Method Summary

Methods
`protected abstract void` `assertOpen()` Deprecated. Asserts if the connection is open.
`protected HttpConnectionMetricsImpl` `createConnectionMetrics(HttpTransportMetrics inTransportMetric, HttpTransportMetrics outTransportMetric)` Deprecated.
`protected EntityDeserializer` `createEntityDeserializer()` Deprecated. Creates an instance of `EntityDeserializer` with the `LaxContentLengthStrategy` implementation to be used for de-serializing entities received over this connection.
`protected EntitySerializer` `createEntitySerializer()` Deprecated. Creates an instance of `EntitySerializer` with the `StrictContentLengthStrategy` implementation to be used for serializing HTTP entities sent over this connection.
`protected HttpRequestFactory` `createHttpRequestFactory()` Deprecated. Creates an instance of `DefaultHttpRequestFactory` to be used for creating `HttpRequest` objects received by over this connection.
`protected HttpMessageParser<HttpRequest>` `createRequestParser(SessionInputBuffer buffer, HttpRequestFactory requestFactory, HttpParams params)` Deprecated. Creates an instance of `HttpMessageParser` to be used for parsing HTTP requests received over this connection.
`protected HttpMessageWriter<HttpResponse>` `createResponseWriter(SessionOutputBuffer buffer, HttpParams params)` Deprecated. Creates an instance of `HttpMessageWriter` to be used for writing out HTTP responses sent over this connection.
`protected void` `doFlush()` Deprecated.
`void` `flush()` Deprecated. Sends all pending buffered data over this connection.
`HttpConnectionMetrics` `getMetrics()` Deprecated. Returns a collection of connection metrics.
`protected void` `init(SessionInputBuffer inbuffer, SessionOutputBuffer outbuffer, HttpParams params)` Deprecated. Initializes this connection object with `SessionInputBuffer` and `SessionOutputBuffer` instances to be used for sending and receiving data.
`protected boolean` `isEof()` Deprecated.
`boolean` `isStale()` Deprecated. Checks whether this connection has gone down.
`void` `receiveRequestEntity(HttpEntityEnclosingRequest request)` Deprecated. Receives the next request entity available from this connection and attaches it to an existing request.
`HttpRequest` `receiveRequestHeader()` Deprecated. Receives the request line and all headers available from this connection.
`void` `sendResponseEntity(HttpResponse response)` Deprecated. Sends the response entity of a response over this connection.
`void` `sendResponseHeader(HttpResponse response)` Deprecated. Sends the response line and headers of a response over this connection.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.http.HttpConnection

`close, getSocketTimeout, isOpen, setSocketTimeout, shutdown`

### Constructor Detail

#### AbstractHttpServerConnection

    public AbstractHttpServerConnection()

Deprecated.
Creates an instance of this class.

This constructor will invoke `createEntityDeserializer()` and `createEntitySerializer()` methods in order to initialize HTTP entity serializer and deserializer implementations for this connection.

### Method Detail

#### assertOpen

    protected abstract void assertOpen()
                                throws IllegalStateException

Deprecated.
Asserts if the connection is open.

Throws:
  `IllegalStateException` - if the connection is not open.

#### createEntityDeserializer

    protected EntityDeserializer createEntityDeserializer()

Deprecated.
Creates an instance of `EntityDeserializer` with the `LaxContentLengthStrategy` implementation to be used for de-serializing entities received over this connection.

This method can be overridden in a super class in order to create instances of `EntityDeserializer` using a custom `ContentLengthStrategy`.

Returns:
  HTTP entity deserializer

#### createEntitySerializer

    protected EntitySerializer createEntitySerializer()

Deprecated.
Creates an instance of `EntitySerializer` with the `StrictContentLengthStrategy` implementation to be used for serializing HTTP entities sent over this connection.

This method can be overridden in a super class in order to create instances of `EntitySerializer` using a custom `ContentLengthStrategy`.

Returns:
  HTTP entity serialzier.

#### createHttpRequestFactory

    protected HttpRequestFactory createHttpRequestFactory()

Deprecated.
Creates an instance of `DefaultHttpRequestFactory` to be used for creating `HttpRequest` objects received by over this connection.

This method can be overridden in a super class in order to provide a different implementation of the `HttpRequestFactory` interface.

Returns:
  HTTP request factory.

#### createRequestParser

    protected HttpMessageParser<HttpRequest> createRequestParser(SessionInputBuffer buffer,
                                                     HttpRequestFactory requestFactory,
                                                     HttpParams params)

Deprecated.
Creates an instance of `HttpMessageParser` to be used for parsing HTTP requests received over this connection.

This method can be overridden in a super class in order to provide a different implementation of the `HttpMessageParser` interface or to pass a different implementation of the `LineParser` to the `DefaultHttpRequestParser` constructor.

Parameters:
  `buffer` - the session input buffer.
  `requestFactory` - the HTTP request factory.
  `params` - HTTP parameters.
Returns:
  HTTP message parser.

#### createResponseWriter

    protected HttpMessageWriter<HttpResponse> createResponseWriter(SessionOutputBuffer buffer,
                                                       HttpParams params)

Deprecated.
Creates an instance of `HttpMessageWriter` to be used for writing out HTTP responses sent over this connection.

This method can be overridden in a super class in order to provide a different implementation of the `HttpMessageWriter` interface or to pass a different implementation of `LineFormatter` to the the default implementation `HttpResponseWriter`.

Parameters:
  `buffer` - the session output buffer
  `params` - HTTP parameters
Returns:
  HTTP message writer

#### createConnectionMetrics

    protected HttpConnectionMetricsImpl createConnectionMetrics(HttpTransportMetrics inTransportMetric,
                                                    HttpTransportMetrics outTransportMetric)

Deprecated.

Since:
  4.1

#### init

    protected void init(SessionInputBuffer inbuffer,
            SessionOutputBuffer outbuffer,
            HttpParams params)

Deprecated.
Initializes this connection object with `SessionInputBuffer` and `SessionOutputBuffer` instances to be used for sending and receiving data. These session buffers can be bound to any arbitrary physical output medium.

This method will invoke `createHttpRequestFactory()`, `createRequestParser(SessionInputBuffer, HttpRequestFactory, HttpParams)` and `createResponseWriter(SessionOutputBuffer, HttpParams)` methods to initialize HTTP request parser and response writer for this connection.

Parameters:
  `inbuffer` - the session input buffer.
  `outbuffer` - the session output buffer.
  `params` - HTTP parameters.

#### receiveRequestHeader

    public HttpRequest receiveRequestHeader()
                                     throws HttpException,
                                            IOException

Deprecated.
Description copied from interface: `HttpServerConnection`
Receives the request line and all headers available from this connection. The caller should examine the returned request and decide if to receive a request entity as well.

Specified by:
  `receiveRequestHeader` in interface `HttpServerConnection`
Returns:
  a new HttpRequest object whose request line and headers are initialized.
Throws:
  `HttpException` - in case of HTTP protocol violation
  `IOException` - in case of an I/O error

#### receiveRequestEntity

    public void receiveRequestEntity(HttpEntityEnclosingRequest request)
                              throws HttpException,
                                     IOException

Deprecated.
Description copied from interface: `HttpServerConnection`
Receives the next request entity available from this connection and attaches it to an existing request.

Specified by:
  `receiveRequestEntity` in interface `HttpServerConnection`
Parameters:
  `request` - the request to attach the entity to.
Throws:
  `HttpException` - in case of HTTP protocol violation
  `IOException` - in case of an I/O error

#### doFlush

    protected void doFlush()
                    throws IOException

Deprecated.

Throws:
  `IOException`

#### flush

    public void flush()
               throws IOException

Deprecated.
Description copied from interface: `HttpServerConnection`
Sends all pending buffered data over this connection.

Specified by:
  `flush` in interface `HttpServerConnection`
Throws:
  `IOException` - in case of an I/O error

#### sendResponseHeader

    public void sendResponseHeader(HttpResponse response)
                            throws HttpException,
                                   IOException

Deprecated.
Description copied from interface: `HttpServerConnection`
Sends the response line and headers of a response over this connection.

Specified by:
  `sendResponseHeader` in interface `HttpServerConnection`
Parameters:
  `response` - the response whose headers to send.
Throws:
  `HttpException` - in case of HTTP protocol violation
  `IOException` - in case of an I/O error

#### sendResponseEntity

    public void sendResponseEntity(HttpResponse response)
                            throws HttpException,
                                   IOException

Deprecated.
Description copied from interface: `HttpServerConnection`
Sends the response entity of a response over this connection.

Specified by:
  `sendResponseEntity` in interface `HttpServerConnection`
Parameters:
  `response` - the response whose entity to send.
Throws:
  `HttpException` - in case of HTTP protocol violation
  `IOException` - in case of an I/O error

#### isEof

    protected boolean isEof()

Deprecated.

#### isStale

    public boolean isStale()

Deprecated.
Description copied from interface: `HttpConnection`
Checks 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:
  `isStale` in interface `HttpConnection`
Returns:
  `true` if attempts to use this connection are likely to succeed, or `false` if they are likely to fail and this connection should be closed

#### getMetrics

    public HttpConnectionMetrics getMetrics()

Deprecated.
Description copied from interface: `HttpConnection`
Returns a collection of connection metrics.

Specified by:
  `getMetrics` in interface `HttpConnection`
Returns:
  HttpConnectionMetrics