Package io.dropwizard.client
Class HttpClientBuilder
- java.lang.Object
-
- io.dropwizard.client.HttpClientBuilder
-
public class HttpClientBuilder extends Object
A convenience class for buildingHttpClientinstances.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.hc.client5.http.impl.classic.CloseableHttpClientbuild(String name)Builds theHttpClient.protected com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManagerconfigureConnectionManager(com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManager connectionManager)protected org.apache.hc.client5.http.auth.CredentialsconfigureCredentials(AuthConfiguration auth)determine the Credentials implementation to useprotected org.apache.hc.client5.http.impl.classic.HttpClientBuildercreateBuilder()Creates an ApacheHttpClientBuilder.protected ConfiguredCloseableHttpClientcreateClient(org.apache.hc.client5.http.impl.classic.HttpClientBuilder builder, com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManager manager, String name)Map the parameters inHttpClientConfigurationto configuration on aHttpClientBuilderinstanceprotected com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManagercreateConnectionManager(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> registry, String name)Create a InstrumentedHttpClientConnectionManager based on the HttpClientConfiguration.protected org.apache.hc.core5.http.impl.io.HttpRequestExecutorcreateRequestExecutor(String name)Creates aHttpRequestExecutor.protected StringcreateUserAgent(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.hc.client5.http.impl.classic.HttpClientBuildercustomizeBuilder(org.apache.hc.client5.http.impl.classic.HttpClientBuilder builder)Configures an ApacheHttpClientBuilder.HttpClientBuilderdisableContentCompression(boolean disableContentCompression)Disable support of decompression of responsesHttpClientBuildername(String environmentName)Use the given environment name.HttpClientBuilderusing(com.codahale.metrics.httpclient5.HttpClientMetricNameStrategy metricNameStrategy)Use the givenHttpClientMetricNameStrategyinstance.HttpClientBuilderusing(HttpClientConfiguration configuration)Use the givenHttpClientConfigurationinstance.HttpClientBuilderusing(List<? extends org.apache.hc.core5.http.Header> defaultHeaders)Use the given default headers for each HTTP requestHttpClientBuilderusing(HostnameVerifier verifier)Use the givenHostnameVerifierinstance.HttpClientBuilderusing(org.apache.hc.client5.http.auth.CredentialsStore credentialsStore)Use the givenCredentialsStoreinstance.HttpClientBuilderusing(org.apache.hc.client5.http.DnsResolver resolver)Use the givenDnsResolverinstance.HttpClientBuilderusing(org.apache.hc.client5.http.HttpRequestRetryStrategy httpRequestRetryStrategy)Uses theHttpRequestRetryStrategyfor handling request retries.HttpClientBuilderusing(org.apache.hc.client5.http.protocol.RedirectStrategy redirectStrategy)Use the givenRedirectStrategyinstance.HttpClientBuilderusing(org.apache.hc.client5.http.routing.HttpRoutePlanner routePlanner)Use the givenHttpRoutePlannerinstance.HttpClientBuilderusing(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> registry)Use the givenRegistryinstance.HttpClientBuilderusing(org.apache.hc.core5.http.protocol.HttpProcessor httpProcessor)Use the givenHttpProcessorinstance
-
-
-
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 givenHttpClientConfigurationinstance.- Parameters:
configuration- aHttpClientConfigurationinstance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.hc.client5.http.DnsResolver resolver)
Use the givenDnsResolverinstance.- Parameters:
resolver- aDnsResolverinstance- Returns:
this
-
using
public HttpClientBuilder using(HostnameVerifier verifier)
Use the givenHostnameVerifierinstance.- Parameters:
verifier- aHostnameVerifierinstance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.hc.client5.http.HttpRequestRetryStrategy httpRequestRetryStrategy)
Uses theHttpRequestRetryStrategyfor handling request retries.- Parameters:
httpRequestRetryStrategy- anHttpRequestRetryStrategy- Returns:
this
-
using
public HttpClientBuilder using(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> registry)
Use the givenRegistryinstance.- Parameters:
registry-- Returns:
this
-
using
public HttpClientBuilder using(org.apache.hc.client5.http.routing.HttpRoutePlanner routePlanner)
Use the givenHttpRoutePlannerinstance.- Parameters:
routePlanner- aHttpRoutePlannerinstance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.hc.client5.http.auth.CredentialsStore credentialsStore)
Use the givenCredentialsStoreinstance.- Parameters:
credentialsStore- aCredentialsStoreinstance- Returns:
this
-
using
public HttpClientBuilder using(com.codahale.metrics.httpclient5.HttpClientMetricNameStrategy metricNameStrategy)
Use the givenHttpClientMetricNameStrategyinstance.- Parameters:
metricNameStrategy- aHttpClientMetricNameStrategyinstance- Returns:
this
-
using
public HttpClientBuilder using(org.apache.hc.client5.http.protocol.RedirectStrategy redirectStrategy)
Use the givenRedirectStrategyinstance.- Parameters:
redirectStrategy- aRedirectStrategyinstance- Returns:
this
-
using
public HttpClientBuilder using(List<? extends org.apache.hc.core5.http.Header> defaultHeaders)
Use the given default headers for each HTTP request- Parameters:
defaultHeaders- HTTP headers- Returns:
- this
-
using
public HttpClientBuilder using(org.apache.hc.core5.http.protocol.HttpProcessor httpProcessor)
Use the givenHttpProcessorinstance- Parameters:
httpProcessor- aHttpProcessorinstance- 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.hc.client5.http.impl.classic.CloseableHttpClient build(String name)
Builds theHttpClient.- Parameters:
name-- Returns:
- an
CloseableHttpClient
-
createRequestExecutor
protected org.apache.hc.core5.http.impl.io.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.hc.client5.http.impl.classic.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.hc.client5.http.impl.classic.HttpClientBuilder customizeBuilder(org.apache.hc.client5.http.impl.classic.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.hc.client5.http.impl.classic.HttpClientBuilder builder, com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManager manager, String name)
Map the parameters inHttpClientConfigurationto configuration on aHttpClientBuilderinstance- 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.httpclient5.InstrumentedHttpClientConnectionManager createConnectionManager(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.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.httpclient5.InstrumentedHttpClientConnectionManager configureConnectionManager(com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManager connectionManager)
-
configureCredentials
protected org.apache.hc.client5.http.auth.Credentials configureCredentials(AuthConfiguration auth)
determine the Credentials implementation to use- Parameters:
auth-- Returns:
- a
Credentialsinstance, either {UsernamePasswordCredentialsorNTCredentials}
-
-