public class HttpComponentsClientHttpRequestFactory extends java.lang.Object implements ClientHttpRequestFactory, DisposableBean
ClientHttpRequestFactory
implementation that uses Http Components 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 ThreadSafeClientConnManager . |
HttpComponentsClientHttpRequestFactory(org.apache.http.client.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,
java.net.URI uri)
Template methods that creates a
HttpContext for the given HTTP method and URI. |
protected org.apache.http.client.methods.HttpUriRequest |
createHttpRequest(HttpMethod httpMethod,
java.net.URI uri)
Create a HttpComponents HttpUriRequest object for the given HTTP method and URI specification.
|
ClientHttpRequest |
createRequest(java.net.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. |
org.apache.http.client.HttpClient |
getHttpClient()
Return the
HttpClient used by this factory. |
protected void |
postProcessHttpRequest(org.apache.http.client.methods.HttpUriRequest httpRequest)
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(org.apache.http.client.HttpClient httpClient)
Set the
HttpClient used by this factory. |
void |
setReadTimeout(int timeout)
Set the socket read timeout for the underlying HttpClient.
|
public HttpComponentsClientHttpRequestFactory()
HttpComponentsClientHttpRequestFactory
with a default HttpClient
that uses a default ThreadSafeClientConnManager
.public HttpComponentsClientHttpRequestFactory(org.apache.http.client.HttpClient httpClient)
HttpClient
instance.httpClient
- the HttpClient instance to use for this factorypublic void setHttpClient(org.apache.http.client.HttpClient httpClient)
HttpClient
used by this factory.public org.apache.http.client.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(java.net.URI uri, HttpMethod httpMethod) throws java.io.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 executejava.io.IOException
- in case of I/O errorsprotected org.apache.http.client.methods.HttpUriRequest createHttpRequest(HttpMethod httpMethod, java.net.URI uri)
httpMethod
- the HTTP methoduri
- the URIprotected void postProcessHttpRequest(org.apache.http.client.methods.HttpUriRequest httpRequest)
HttpUriRequest
before it is returned as part of a
HttpComponentsClientHttpRequest
.
The default implementation is empty.
httpRequest
- the HTTP request object to processprotected org.apache.http.protocol.HttpContext createHttpContext(HttpMethod httpMethod, java.net.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