public class DefaultClientConnection extends SocketHttpClientConnection implements OperatedClientConnection
The following parameters can be used to customize the behavior of this class:
Constructor and Description |
---|
DefaultClientConnection() |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this connection gracefully.
|
protected HttpMessageParser |
createResponseParser(SessionInputBuffer buffer,
HttpResponseFactory responseFactory,
HttpParams params)
Creates an instance of
HttpMessageParser to be used for parsing
HTTP responses received over this connection. |
protected SessionInputBuffer |
createSessionInputBuffer(java.net.Socket socket,
int buffersize,
HttpParams params)
Creates an instance of
SocketInputBuffer to be used for
receiving data from the given Socket . |
protected SessionOutputBuffer |
createSessionOutputBuffer(java.net.Socket socket,
int buffersize,
HttpParams params)
Creates an instance of
SessionOutputBuffer to be used for
sending data to the given Socket . |
java.net.Socket |
getSocket()
Obtains the socket for this connection.
|
HttpHost |
getTargetHost()
Obtains the target host for this connection.
|
boolean |
isSecure()
Indicates whether this connection is secure.
|
void |
openCompleted(boolean secure,
HttpParams params)
Signals that the connection has been successfully open.
|
void |
opening(java.net.Socket sock,
HttpHost target)
Signals that this connection is in the process of being open.
|
HttpResponse |
receiveResponseHeader()
Receives the request line and headers of the next response available from
this connection.
|
void |
sendRequestHeader(HttpRequest request)
Sends the request line and all headers over the connection.
|
void |
shutdown()
Force-closes this connection.
|
void |
update(java.net.Socket sock,
HttpHost target,
boolean secure,
HttpParams params)
Updates this connection.
|
assertNotOpen, assertOpen, bind, getLocalAddress, getLocalPort, getRemoteAddress, getRemotePort, getSocketTimeout, isOpen, setSocketTimeout
createEntityDeserializer, createEntitySerializer, createHttpResponseFactory, createRequestWriter, doFlush, flush, getMetrics, init, isEof, isResponseAvailable, isStale, receiveResponseEntity, sendRequestEntity
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
flush, isResponseAvailable, receiveResponseEntity, sendRequestEntity
getLocalAddress, getLocalPort, getRemoteAddress, getRemotePort
getMetrics, getSocketTimeout, isOpen, isStale, setSocketTimeout
public final HttpHost getTargetHost()
OperatedClientConnection
update
.getTargetHost
in interface OperatedClientConnection
public final boolean isSecure()
OperatedClientConnection
update
.isSecure
in interface OperatedClientConnection
true
if this connection is secure,
false
otherwisepublic final java.net.Socket getSocket()
OperatedClientConnection
update
.getSocket
in interface OperatedClientConnection
getSocket
in class SocketHttpClientConnection
target host
public void opening(java.net.Socket sock, HttpHost target) throws java.io.IOException
OperatedClientConnection
OperatedClientConnection.openCompleted(boolean, org.apache.http.params.HttpParams)
is called. This allows
the connection to close that socket if
shutdown
is called before it is open. Closing the unconnected socket
will interrupt a thread that is blocked on the connect.
Otherwise, that thread will either time out on the connect,
or it returns successfully and then opens this connection
which was just shut down.
OperatedClientConnection.openCompleted(boolean, org.apache.http.params.HttpParams)
in order to complete
the processopening
in interface OperatedClientConnection
sock
- the unconnected socket which is about to
be connected.target
- the target host of this connectionjava.io.IOException
public void openCompleted(boolean secure, HttpParams params) throws java.io.IOException
OperatedClientConnection
openCompleted
in interface OperatedClientConnection
secure
- true
if this connection is secure, for
example if an SSLSocket
is used, or
false
if it is not secureparams
- parameters for this connection. The parameters will
be used when creating dependent objects, for example
to determine buffer sizes.java.io.IOException
public void shutdown() throws java.io.IOException
opening
was already called but
openCompleted
was not), the associated
socket that is being connected to a remote address will be closed.
That will interrupt a thread that is blocked on connecting
the socket.
If the connection is not yet open, this will prevent the connection
from being opened.shutdown
in interface HttpConnection
shutdown
in class SocketHttpClientConnection
java.io.IOException
- in case of a problempublic void close() throws java.io.IOException
HttpConnection
shutdown
instead.close
in interface HttpConnection
close
in class SocketHttpClientConnection
java.io.IOException
protected SessionInputBuffer createSessionInputBuffer(java.net.Socket socket, int buffersize, HttpParams params) throws java.io.IOException
SocketHttpClientConnection
SocketInputBuffer
to be used for
receiving data from the given Socket
.
This method can be overridden in a super class in order to provide
a custom implementation of SessionInputBuffer
interface.
createSessionInputBuffer
in class SocketHttpClientConnection
socket
- the socket.buffersize
- the buffer size.params
- HTTP parameters.java.io.IOException
- in case of an I/O error.SocketInputBuffer.SocketInputBuffer(Socket, int, HttpParams)
protected SessionOutputBuffer createSessionOutputBuffer(java.net.Socket socket, int buffersize, HttpParams params) throws java.io.IOException
SocketHttpClientConnection
SessionOutputBuffer
to be used for
sending data to the given Socket
.
This method can be overridden in a super class in order to provide
a custom implementation of SocketOutputBuffer
interface.
createSessionOutputBuffer
in class SocketHttpClientConnection
socket
- the socket.buffersize
- the buffer size.params
- HTTP parameters.java.io.IOException
- in case of an I/O error.SocketOutputBuffer.SocketOutputBuffer(Socket, int, HttpParams)
protected HttpMessageParser createResponseParser(SessionInputBuffer buffer, HttpResponseFactory responseFactory, HttpParams params)
AbstractHttpClientConnection
HttpMessageParser
to be used for parsing
HTTP responses 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 LineParser
to the
the default implementation HttpResponseParser
.
createResponseParser
in class AbstractHttpClientConnection
buffer
- the session input buffer.responseFactory
- the HTTP response factory.params
- HTTP parameters.public void update(java.net.Socket sock, HttpHost target, boolean secure, HttpParams params) throws java.io.IOException
OperatedClientConnection
update
in interface OperatedClientConnection
sock
- the new socket for communicating with the target host,
or null
to continue using the old socket.
If null
is passed, helper objects that
depend on the socket should be re-used. In that case,
some changes in the parameters will not take effect.target
- the new target host of this connectionsecure
- true
if this connection is now secure,
false
if it is not secureparams
- new parameters for this connectionjava.io.IOException
public HttpResponse receiveResponseHeader() throws HttpException, java.io.IOException
HttpClientConnection
receiveResponseHeader
in interface HttpClientConnection
receiveResponseHeader
in class AbstractHttpClientConnection
HttpException
- in case of HTTP protocol violationjava.io.IOException
- in case of an I/O errorpublic void sendRequestHeader(HttpRequest request) throws HttpException, java.io.IOException
HttpClientConnection
sendRequestHeader
in interface HttpClientConnection
sendRequestHeader
in class AbstractHttpClientConnection
request
- the request whose headers to send.HttpException
- in case of HTTP protocol violationjava.io.IOException
- in case of an I/O error