org.apache.http.impl
Class DefaultHttpClientConnection

java.lang.Object
  extended by org.apache.http.impl.AbstractHttpConnection
      extended by org.apache.http.impl.DefaultHttpClientConnection
All Implemented Interfaces:
HttpClientConnection, HttpConnection
Direct Known Subclasses:
DefaultHttpProxyConnection

public class DefaultHttpClientConnection
extends AbstractHttpConnection
implements HttpClientConnection

Default implementation of a client-side HTTP connection.

Since:
4.0
Version:
$Revision: 411100 $
Author:
Oleg Kalnichevski

Field Summary
 
Fields inherited from class org.apache.http.impl.AbstractHttpConnection
datareceiver, datatransmitter, open, socket
 
Constructor Summary
DefaultHttpClientConnection()
           
DefaultHttpClientConnection(HttpHost targethost)
           
DefaultHttpClientConnection(HttpHost targethost, java.net.InetAddress localAddress)
           
 
Method Summary
 void flush()
          Writes out all pending buffered data over the open connection.
 java.net.InetAddress getLocalAddress()
          The local address the connection is or will be bound to as set by
 HttpHost getTargetHost()
          Returns the current target host as set by @link #setTargetHost(HttpHost).
 boolean isResponseAvailable(int timeout)
          Checks if response data is available from the connection.
 void open(HttpParams params)
          Opens the connection.
protected  void readResponseHeaders(HttpResponse response)
           
protected  HttpResponse readResponseStatusLine(HttpParams params)
           
 void receiveResponseEntity(HttpResponse response)
          Receives the next response entity available from this connection and attaches it to an existing HttpResponse object.
 HttpResponse receiveResponseHeader(HttpParams params)
          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.
protected  void sendRequestHeaders(HttpRequest request)
           
protected  void sendRequestLine(HttpRequest request)
           
 void setEntityDeserializer(EntityDeserializer entitydeserializer)
           
 void setEntitySerializer(EntitySerializer entityserializer)
           
 void setLocalAddress(java.net.InetAddress localAddress)
          Sets the local address the connection will be bound to upon opening.
 void setResponseFactory(HttpResponseFactory responsefactory)
           
 void setTargetHost(HttpHost targethost)
          Provides the implementation with the host it is supposed to connect to.
 
Methods inherited from class org.apache.http.impl.AbstractHttpConnection
assertNotOpen, assertOpen, bind, close, isOpen, isStale, setReceiverFactory, setTransmitterFactory, shutdown
 
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, isOpen, isStale, shutdown
 

Constructor Detail

DefaultHttpClientConnection

public DefaultHttpClientConnection(HttpHost targethost,
                                   java.net.InetAddress localAddress)

DefaultHttpClientConnection

public DefaultHttpClientConnection(HttpHost targethost)

DefaultHttpClientConnection

public DefaultHttpClientConnection()
Method Detail

setResponseFactory

public void setResponseFactory(HttpResponseFactory responsefactory)

setEntityDeserializer

public void setEntityDeserializer(EntityDeserializer entitydeserializer)

setEntitySerializer

public void setEntitySerializer(EntitySerializer entityserializer)

open

public void open(HttpParams params)
          throws java.io.IOException
Description copied from interface: HttpClientConnection
Opens the connection. Implementations may use additional settings from the HttpParams hierarchy.

Specified by:
open in interface HttpClientConnection
Parameters:
params - the parameters in effect for this connection.
Throws:
java.io.IOException

getTargetHost

public HttpHost getTargetHost()
Description copied from interface: HttpClientConnection
Returns the current target host as set by @link #setTargetHost(HttpHost).

Specified by:
getTargetHost in interface HttpClientConnection
Returns:
the target host of this connection

getLocalAddress

public java.net.InetAddress getLocalAddress()
Description copied from interface: HttpClientConnection
The local address the connection is or will be bound to as set by

Specified by:
getLocalAddress in interface HttpClientConnection
Returns:
local address the connection

setTargetHost

public void setTargetHost(HttpHost targethost)
Description copied from interface: HttpClientConnection
Provides the implementation with the host it is supposed to connect to. The host must be set prior to a call to

Specified by:
setTargetHost in interface HttpClientConnection
Parameters:
targethost - the host to connect to

setLocalAddress

public void setLocalAddress(java.net.InetAddress localAddress)
Description copied from interface: HttpClientConnection
Sets the local address the connection will be bound to upon opening. The local address can not only be set as long as the connection is not open. If no local address is specified it is up to the implementation to decide.

Specified by:
setLocalAddress in interface HttpClientConnection
Parameters:
localAddress - the local bind address or null.

isResponseAvailable

public boolean isResponseAvailable(int timeout)
                            throws java.io.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:
java.io.IOException - if an error happens on the connection

sendRequestHeader

public void sendRequestHeader(HttpRequest request)
                       throws HttpException,
                              java.io.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
java.io.IOException

sendRequestEntity

public void sendRequestEntity(HttpEntityEnclosingRequest request)
                       throws HttpException,
                              java.io.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
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Description copied from interface: HttpClientConnection
Writes out all pending buffered data over the open connection.

Specified by:
flush in interface HttpClientConnection
Throws:
java.io.IOException

sendRequestLine

protected void sendRequestLine(HttpRequest request)
                        throws HttpException,
                               java.io.IOException
Throws:
HttpException
java.io.IOException

sendRequestHeaders

protected void sendRequestHeaders(HttpRequest request)
                           throws HttpException,
                                  java.io.IOException
Throws:
HttpException
java.io.IOException

receiveResponseHeader

public HttpResponse receiveResponseHeader(HttpParams params)
                                   throws HttpException,
                                          java.io.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
Parameters:
params - the parameters in effect
Returns:
a new HttpResponse object with status line and headers initialized.
Throws:
HttpException
java.io.IOException

receiveResponseEntity

public void receiveResponseEntity(HttpResponse response)
                           throws HttpException,
                                  java.io.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
java.io.IOException

readResponseStatusLine

protected HttpResponse readResponseStatusLine(HttpParams params)
                                       throws HttpException,
                                              java.io.IOException
Throws:
HttpException
java.io.IOException

readResponseHeaders

protected void readResponseHeaders(HttpResponse response)
                            throws HttpException,
                                   java.io.IOException
Throws:
HttpException
java.io.IOException


Copyright 2005-2005-2006 Apache Software Foundation. All Rights Reserved.