Package io.dropwizard.client
Class HttpClientBuilder
java.lang.Object
io.dropwizard.client.HttpClientBuilder
A convenience class for building
HttpClient instances.
Among other things,
- Disables stale connection checks by default
- Disables Nagle's algorithm
- Disables cookie management by default
-
Constructor Summary
ConstructorsConstructorDescriptionHttpClientBuilder(com.codahale.metrics.MetricRegistry metricRegistry) HttpClientBuilder(io.dropwizard.core.setup.Environment environment) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.hc.client5.http.impl.classic.CloseableHttpClientBuilds theHttpClient.protected com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManagerconfigureConnectionManager(com.codahale.metrics.httpclient5.InstrumentedHttpClientConnectionManager connectionManager) protected org.apache.hc.client5.http.auth.Credentialsdetermine the Credentials implementation to useprotected org.apache.hc.client5.http.impl.classic.HttpClientBuilderCreates 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.disableContentCompression(boolean disableContentCompression) Disable support of decompression of responsesUse the given environment name.using(com.codahale.metrics.httpclient5.HttpClientMetricNameStrategy metricNameStrategy) Use the givenHttpClientMetricNameStrategyinstance.using(HttpClientConfiguration configuration) Use the givenHttpClientConfigurationinstance.Use the given default headers for each HTTP requestusing(HostnameVerifier verifier) Use the givenHostnameVerifierinstance.using(org.apache.hc.client5.http.auth.CredentialsStore credentialsStore) Use the givenCredentialsStoreinstance.using(org.apache.hc.client5.http.DnsResolver resolver) Use the givenDnsResolverinstance.using(org.apache.hc.client5.http.HttpRequestRetryStrategy httpRequestRetryStrategy) Uses theHttpRequestRetryStrategyfor handling request retries.using(org.apache.hc.client5.http.protocol.RedirectStrategy redirectStrategy) Use the givenRedirectStrategyinstance.using(org.apache.hc.client5.http.routing.HttpRoutePlanner routePlanner) Use the givenHttpRoutePlannerinstance.using(org.apache.hc.core5.http.config.Registry<org.apache.hc.client5.http.socket.ConnectionSocketFactory> registry) Use the givenRegistryinstance.using(org.apache.hc.core5.http.protocol.HttpProcessor httpProcessor) Use the givenHttpProcessorinstance
-
Constructor Details
-
HttpClientBuilder
public HttpClientBuilder(com.codahale.metrics.MetricRegistry metricRegistry) -
HttpClientBuilder
public HttpClientBuilder(io.dropwizard.core.setup.Environment environment)
-
-
Method Details
-
name
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
Use the givenHttpClientConfigurationinstance.- Parameters:
configuration- aHttpClientConfigurationinstance- Returns:
this
-
using
Use the givenDnsResolverinstance.- Parameters:
resolver- aDnsResolverinstance- Returns:
this
-
using
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
Use the givenHttpRoutePlannerinstance.- Parameters:
routePlanner- aHttpRoutePlannerinstance- Returns:
this
-
using
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
Use the given default headers for each HTTP request- Parameters:
defaultHeaders- HTTP headers- Returns:
- this
-
using
Use the givenHttpProcessorinstance- Parameters:
httpProcessor- aHttpProcessorinstance- Returns:
- this
-
disableContentCompression
Disable support of decompression of responses- Parameters:
disableContentCompression-true, if disabled- Returns:
this
-
build
Builds theHttpClient.- Parameters:
name-- Returns:
- an
CloseableHttpClient
-
createRequestExecutor
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
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
determine the Credentials implementation to use- Parameters:
auth-- Returns:
- a
Credentialsinstance, either {UsernamePasswordCredentialsorNTCredentials}
-