Package io.dropwizard.client
Class HttpClientBuilder
- java.lang.Object
-
- io.dropwizard.client.HttpClientBuilder
-
public class HttpClientBuilder extends Object
A convenience class for buildingHttpClient
instances.Among other things,
- Disables stale connection checks by default
- Disables Nagle's algorithm
- Disables cookie management by default
-
-
Constructor Summary
Constructors Constructor Description HttpClientBuilder(com.codahale.metrics.MetricRegistry metricRegistry)
HttpClientBuilder(Environment environment)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.http.impl.client.CloseableHttpClient
build(String name)
Builds theHttpClient
.protected com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager
configureConnectionManager(com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager connectionManager)
protected org.apache.http.auth.Credentials
configureCredentials(AuthConfiguration auth)
determine the Credentials implementation to useprotected org.apache.http.impl.client.HttpClientBuilder
createBuilder()
Creates an ApacheHttpClientBuilder
.protected ConfiguredCloseableHttpClient
createClient(org.apache.http.impl.client.HttpClientBuilder builder, com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager manager, String name)
Map the parameters inHttpClientConfiguration
to configuration on aHttpClientBuilder
instanceprotected com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager
createConnectionManager(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry, String name)
Create a InstrumentedHttpClientConnectionManager based on the HttpClientConfiguration.protected org.apache.http.protocol.HttpRequestExecutor
createRequestExecutor(String name)
Creates aHttpRequestExecutor
.protected String
createUserAgent(String name)
Create a user agent string using the configured user agent if defined, otherwise using a combination of the environment name and this client nameprotected org.apache.http.impl.client.HttpClientBuilder
customizeBuilder(org.apache.http.impl.client.HttpClientBuilder builder)
Configures an ApacheHttpClientBuilder
.HttpClientBuilder
disableContentCompression(boolean disableContentCompression)
Disable support of decompression of responsesHttpClientBuilder
name(String environmentName)
Use the given environment name.HttpClientBuilder
using(com.codahale.metrics.httpclient.HttpClientMetricNameStrategy metricNameStrategy)
Use the givenHttpClientMetricNameStrategy
instance.HttpClientBuilder
using(HttpClientConfiguration configuration)
Use the givenHttpClientConfiguration
instance.HttpClientBuilder
using(List<? extends org.apache.http.Header> defaultHeaders)
Use the given default headers for each HTTP requestHttpClientBuilder
using(HostnameVerifier verifier)
Use the give (@link HostnameVerifier} instance.HttpClientBuilder
using(org.apache.http.client.CredentialsProvider credentialsProvider)
Use the givenCredentialsProvider
instance.HttpClientBuilder
using(org.apache.http.client.HttpRequestRetryHandler httpRequestRetryHandler)
Uses theHttpRequestRetryHandler
for handling request retries.HttpClientBuilder
using(org.apache.http.client.RedirectStrategy redirectStrategy)
Use the givenRedirectStrategy
instance.HttpClientBuilder
using(org.apache.http.client.ServiceUnavailableRetryStrategy serviceUnavailableRetryStrategy)
Use the givenServiceUnavailableRetryStrategy
instanceHttpClientBuilder
using(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry)
Use the givenRegistry
instance.HttpClientBuilder
using(org.apache.http.conn.DnsResolver resolver)
Use the givenDnsResolver
instance.HttpClientBuilder
using(org.apache.http.conn.routing.HttpRoutePlanner routePlanner)
Use the givenHttpRoutePlanner
instance.HttpClientBuilder
using(org.apache.http.protocol.HttpProcessor httpProcessor)
Use the givenHttpProcessor
instance
-
-
-
Constructor Detail
-
HttpClientBuilder
public HttpClientBuilder(com.codahale.metrics.MetricRegistry metricRegistry)
-
HttpClientBuilder
public HttpClientBuilder(Environment environment)
-
-
Method Detail
-
name
public HttpClientBuilder name(String environmentName)
Use the given environment name. This is used in the user agent.- Parameters:
environmentName
- an environment name to use in the user agent.- Returns:
this
-
using
public HttpClientBuilder using(HttpClientConfiguration configuration)
Use the givenHttpClientConfiguration
instance.- Parameters:
configuration
- aHttpClientConfiguration
instance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.http.conn.DnsResolver resolver)
Use the givenDnsResolver
instance.- Parameters:
resolver
- aDnsResolver
instance- Returns:
this
-
using
public HttpClientBuilder using(HostnameVerifier verifier)
Use the give (@link HostnameVerifier} instance.- Parameters:
verifier
- aHostnameVerifier
instance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.http.client.HttpRequestRetryHandler httpRequestRetryHandler)
Uses theHttpRequestRetryHandler
for handling request retries.- Parameters:
httpRequestRetryHandler
- an httpRequestRetryHandler- Returns:
this
-
using
public HttpClientBuilder using(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry)
Use the givenRegistry
instance.- Parameters:
registry
-- Returns:
this
-
using
public HttpClientBuilder using(org.apache.http.conn.routing.HttpRoutePlanner routePlanner)
Use the givenHttpRoutePlanner
instance.- Parameters:
routePlanner
- aHttpRoutePlanner
instance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.http.client.CredentialsProvider credentialsProvider)
Use the givenCredentialsProvider
instance.- Parameters:
credentialsProvider
- aCredentialsProvider
instance- Returns:
this
-
using
public HttpClientBuilder using(com.codahale.metrics.httpclient.HttpClientMetricNameStrategy metricNameStrategy)
Use the givenHttpClientMetricNameStrategy
instance.- Parameters:
metricNameStrategy
- aHttpClientMetricNameStrategy
instance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.http.client.RedirectStrategy redirectStrategy)
Use the givenRedirectStrategy
instance.- Parameters:
redirectStrategy
- aRedirectStrategy
instance- Returns:
this
-
using
public HttpClientBuilder using(List<? extends org.apache.http.Header> defaultHeaders)
Use the given default headers for each HTTP request- Parameters:
defaultHeaders
- HTTP headers- Returns:
- this
-
using
public HttpClientBuilder using(org.apache.http.protocol.HttpProcessor httpProcessor)
Use the givenHttpProcessor
instance- Parameters:
httpProcessor
- aHttpProcessor
instance- Returns:
- this
-
using
public HttpClientBuilder using(org.apache.http.client.ServiceUnavailableRetryStrategy serviceUnavailableRetryStrategy)
Use the givenServiceUnavailableRetryStrategy
instance- Parameters:
serviceUnavailableRetryStrategy
- aServiceUnavailableRetryStrategy
instance- Returns:
- this
-
disableContentCompression
public HttpClientBuilder disableContentCompression(boolean disableContentCompression)
Disable support of decompression of responses- Parameters:
disableContentCompression
-true
, if disabled- Returns:
this
-
build
public org.apache.http.impl.client.CloseableHttpClient build(String name)
Builds theHttpClient
.- Parameters:
name
-- Returns:
- an
CloseableHttpClient
-
createRequestExecutor
protected org.apache.http.protocol.HttpRequestExecutor createRequestExecutor(String name)
Creates aHttpRequestExecutor
. Intended for use by subclasses to provide a customized request executor. The default implementation is anInstrumentedHttpRequestExecutor
- Parameters:
name
-- Returns:
- a
HttpRequestExecutor
- Since:
- 2.0
-
createBuilder
protected org.apache.http.impl.client.HttpClientBuilder createBuilder()
Creates an ApacheHttpClientBuilder
. Intended for use by subclasses to create builder instance from subclass ofHttpClientBuilder
- Returns:
- an
HttpClientBuilder
- Since:
- 2.0
-
customizeBuilder
protected org.apache.http.impl.client.HttpClientBuilder customizeBuilder(org.apache.http.impl.client.HttpClientBuilder builder)
Configures an ApacheHttpClientBuilder
. Intended for use by subclasses to inject HttpClientBuilder configuration. The default implementation is an identity function.
-
createClient
protected ConfiguredCloseableHttpClient createClient(org.apache.http.impl.client.HttpClientBuilder builder, com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager manager, String name)
Map the parameters inHttpClientConfiguration
to configuration on aHttpClientBuilder
instance- Parameters:
builder
-manager
-name
-- Returns:
- the configured
CloseableHttpClient
-
createUserAgent
protected String createUserAgent(String name)
Create a user agent string using the configured user agent if defined, otherwise using a combination of the environment name and this client name- Parameters:
name
- the name of this client- Returns:
- the user agent string to be used by this client
-
createConnectionManager
protected com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager createConnectionManager(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry, String name)
Create a InstrumentedHttpClientConnectionManager based on the HttpClientConfiguration. It sets the maximum connections per route and the maximum total connections that the connection manager can create- Parameters:
registry
-name
-- Returns:
- a InstrumentedHttpClientConnectionManger instance
-
configureConnectionManager
protected com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager configureConnectionManager(com.codahale.metrics.httpclient.InstrumentedHttpClientConnectionManager connectionManager)
-
configureCredentials
protected org.apache.http.auth.Credentials configureCredentials(AuthConfiguration auth)
determine the Credentials implementation to use- Parameters:
auth
-- Returns:
- a
Credentials
instance, either {UsernamePasswordCredentials
orNTCredentials
}
-
-