public class HttpComponentsClientHttpRequestFactory extends Object implements ClientHttpRequestFactory, DisposableBean
ClientHttpRequestFactory
implementation that uses
Apache HttpComponents HttpClient
to create requests.
Allows to use a pre-configured HttpClient
instance -
potentially with authentication, HTTP connection pooling, etc.
Constructor and Description |
---|
HttpComponentsClientHttpRequestFactory()
Create a new instance of the HttpComponentsClientHttpRequestFactory with a default
HttpClient that uses a default PoolingClientConnectionManager . |
HttpComponentsClientHttpRequestFactory(HttpClient httpClient)
Create a new instance of the HttpComponentsClientHttpRequestFactory
with the given
HttpClient instance. |
Modifier and Type | Method and Description |
---|---|
protected org.apache.http.protocol.HttpContext |
createHttpContext(HttpMethod httpMethod,
URI uri)
Template methods that creates a
HttpContext for the given HTTP method and URI. |
protected HttpUriRequest |
createHttpUriRequest(HttpMethod httpMethod,
URI 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
ClientConnectionManager 's
connection pool, if any. |
HttpClient |
getHttpClient()
Return the
HttpClient used by this factory. |
protected void |
postProcessHttpRequest(HttpUriRequest request)
Template method that allows for manipulating the
HttpUriRequest before it is
returned as part of a HttpComponentsClientHttpRequest . |
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.
|
public HttpComponentsClientHttpRequestFactory()
HttpClient
that uses a default PoolingClientConnectionManager
.public HttpComponentsClientHttpRequestFactory(HttpClient httpClient)
HttpClient
instance.httpClient
- the HttpClient instance to use for this request factorypublic void setHttpClient(HttpClient httpClient)
HttpClient
used by this factory.public HttpClient getHttpClient()
HttpClient
used by this factory.public void setConnectTimeout(int timeout)
timeout
- the timeout value in millisecondspublic void setReadTimeout(int timeout)
timeout
- the timeout value in millisecondspublic ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException
ClientHttpRequestFactory
ClientHttpRequest
for the specified URI and HTTP method.
The returned request can be written to, and then executed by calling
ClientHttpRequest.execute()
.
createRequest
in interface ClientHttpRequestFactory
uri
- the URI to create a request forhttpMethod
- the HTTP method to executeIOException
- in case of I/O errorsprotected HttpUriRequest createHttpUriRequest(HttpMethod httpMethod, URI uri)
httpMethod
- the HTTP methoduri
- the URIprotected void postProcessHttpRequest(HttpUriRequest request)
HttpUriRequest
before it is
returned as part of a HttpComponentsClientHttpRequest
.
The default implementation is empty.
request
- the request to processprotected org.apache.http.protocol.HttpContext createHttpContext(HttpMethod httpMethod, URI uri)
HttpContext
for the given HTTP method and URI.
The default implementation returns null
.
httpMethod
- the HTTP methoduri
- the URIpublic void destroy()
ClientConnectionManager
's
connection pool, if any.destroy
in interface DisposableBean