org.springframework.http.client
Class CommonsClientHttpRequestFactory

java.lang.Object
  extended by org.springframework.http.client.CommonsClientHttpRequestFactory
All Implemented Interfaces:
DisposableBean, ClientHttpRequestFactory

public class CommonsClientHttpRequestFactory
extends Object
implements ClientHttpRequestFactory, DisposableBean

ClientHttpRequestFactory implementation that uses Jakarta Commons HttpClient to create requests.

Allows to use a pre-configured HttpClient instance - potentially with authentication, HTTP connection pooling, etc.

Since:
3.0
Author:
Arjen Poutsma
See Also:
SimpleClientHttpRequestFactory

Constructor Summary
CommonsClientHttpRequestFactory()
          Create a new instance of the CommonsHttpRequestFactory with a default HttpClient that uses a default MultiThreadedHttpConnectionManager.
CommonsClientHttpRequestFactory(HttpClient httpClient)
          Create a new instance of the CommonsHttpRequestFactory with the given HttpClient instance.
 
Method Summary
protected  HttpMethodBase createCommonsHttpMethod(HttpMethod httpMethod, String uri)
          Create a Commons HttpMethodBase object for the given HTTP method and URI specification.
 ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod)
          Create a new ClientHttpRequest for the specified URI and HTTP method.
 void destroy()
          Shutdown hook that closes the underlying HttpConnectionManager's connection pool, if any.
 HttpClient getHttpClient()
          Return the HttpClient used by this factory.
protected  void postProcessCommonsHttpMethod(HttpMethodBase httpMethod)
          Template method that allows for manipulating the HttpMethodBase before it is returned as part of a CommonsClientHttpRequest.
 void setConnectTimeout(int timeout)
          Set the connection timeout for the underlying HttpClient.
 void setHttpClient(HttpClient httpClient)
          Set the HttpClient used by this factory.
 void setReadTimeout(int timeout)
          Set the socket read timeout for the underlying HttpClient.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CommonsClientHttpRequestFactory

public CommonsClientHttpRequestFactory()
Create a new instance of the CommonsHttpRequestFactory with a default HttpClient that uses a default MultiThreadedHttpConnectionManager.


CommonsClientHttpRequestFactory

public CommonsClientHttpRequestFactory(HttpClient httpClient)
Create a new instance of the CommonsHttpRequestFactory with the given HttpClient instance.

Parameters:
httpClient - the HttpClient instance to use for this factory
Method Detail

setHttpClient

public void setHttpClient(HttpClient httpClient)
Set the HttpClient used by this factory.


getHttpClient

public HttpClient getHttpClient()
Return the HttpClient used by this factory.


setConnectTimeout

public void setConnectTimeout(int timeout)
Set the connection timeout for the underlying HttpClient. A timeout value of 0 specifies an infinite timeout.

Parameters:
timeout - the timeout value in milliseconds
See Also:
HttpConnectionParams.setConnectionTimeout(int)

setReadTimeout

public void setReadTimeout(int timeout)
Set the socket read timeout for the underlying HttpClient. A timeout value of 0 specifies an infinite timeout.

Parameters:
timeout - the timeout value in milliseconds
See Also:
HttpConnectionParams.setSoTimeout(int)

createRequest

public ClientHttpRequest createRequest(URI uri,
                                       HttpMethod httpMethod)
                                throws IOException
Description copied from interface: ClientHttpRequestFactory
Create a new ClientHttpRequest for the specified URI and HTTP method.

The returned request can be written to, and then executed by calling ClientHttpRequest.execute().

Specified by:
createRequest in interface ClientHttpRequestFactory
Parameters:
uri - the URI to create a request for
httpMethod - the HTTP method to execute
Returns:
the created request
Throws:
IOException - in case of I/O errors

createCommonsHttpMethod

protected HttpMethodBase createCommonsHttpMethod(HttpMethod httpMethod,
                                                 String uri)
Create a Commons HttpMethodBase object for the given HTTP method and URI specification.

Parameters:
httpMethod - the HTTP method
uri - the URI
Returns:
the Commons HttpMethodBase object

postProcessCommonsHttpMethod

protected void postProcessCommonsHttpMethod(HttpMethodBase httpMethod)
Template method that allows for manipulating the HttpMethodBase before it is returned as part of a CommonsClientHttpRequest.

The default implementation is empty.

Parameters:
httpMethod - the Commons HTTP method object to process

destroy

public void destroy()
Shutdown hook that closes the underlying HttpConnectionManager's connection pool, if any.

Specified by:
destroy in interface DisposableBean