org.apache.http.impl
Class DefaultBHttpClientConnection

java.lang.Object
  extended by org.apache.http.impl.BHttpConnectionBase
      extended by org.apache.http.impl.DefaultBHttpClientConnection
All Implemented Interfaces:
Closeable, HttpClientConnection, HttpConnection, HttpInetConnection

public class DefaultBHttpClientConnection
extends BHttpConnectionBase
implements HttpClientConnection

Default implementation of HttpClientConnection.

Since:
4.3

Constructor Summary
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
 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–2019 The Apache Software Foundation. All rights reserved.