public class ClientBuilder extends Object
CloseableHttpClient
.
HttpClients are heavy-weight objects that manage the client-side communication infrastructure.
Initialization as well as disposal of a CloseableHttpClient
instance may be a rather expensive operation.
It is therefore advised to construct only a small number of CloseableHttpClient
instances in the application.
Modifier and Type | Method and Description |
---|---|
ClientBuilder |
addContentType(org.apache.hc.core5.http.ContentType contentType)
Sets content type to header
|
ClientBuilder |
addDefaultConnectionConfigCustomizer(Consumer<org.apache.hc.client5.http.config.ConnectionConfig.Builder> defaultConnectionConfigBuilderConsumer) |
ClientBuilder |
addDefaultHeader(org.apache.hc.core5.http.Header header)
Header needs to be the same for all requests which go through the built CloseableHttpClient
|
ClientBuilder |
addDefaultHeader(String name,
String value)
Header needs to be the same for all requests which go through the built CloseableHttpClient
|
ClientBuilder |
addDefaultHeaders(Collection<? extends org.apache.hc.core5.http.Header> headers)
Headers need to be the same for all requests which go through the built CloseableHttpClient
|
ClientBuilder |
addDefaultHeaders(org.apache.hc.core5.http.Header... headers)
Headers need to be the same for all requests which go through the built CloseableHttpClient
|
ClientBuilder |
addDefaultRequestConfigCustomizer(Consumer<org.apache.hc.client5.http.config.RequestConfig.Builder> defaultRequestConfigBuilderConsumer) |
ClientBuilder |
addHttpClientCustomizer(Consumer<org.apache.hc.client5.http.impl.classic.HttpClientBuilder> httpClientCustomizer)
The method takes the
Consumer instance which gives the HttpClientBuilder instance to customize
the CloseableHttpClient before the http-request is built |
org.apache.hc.client5.http.impl.classic.CloseableHttpClient |
build()
Build CloseableHttpClient
|
static ClientBuilder |
create() |
ClientBuilder |
enableDefaultRedirectStrategy() |
ClientBuilder |
hostnameVerifier(HostnameVerifier hostnameVerifier)
Sets
HostnameVerifier |
ClientBuilder |
proxy(org.apache.hc.core5.http.HttpHost proxy)
Added proxy host.
|
ClientBuilder |
proxy(String host,
int port) |
ClientBuilder |
proxy(URI proxyUri)
Added proxy by proxyUri.
|
ClientBuilder |
redirectStrategy(org.apache.hc.client5.http.protocol.RedirectStrategy redirectStrategy)
By default disabled.
|
ClientBuilder |
setConnectionRequestTimeout(int connectionRequestTimeout) |
ClientBuilder |
setConnectionRequestTimeout(org.apache.hc.core5.util.Timeout connectionRequestTimeout)
The timeout in milliseconds used when requesting a connection
from the connection manager.
|
ClientBuilder |
setConnectTimeout(int connectTimeout) |
ClientBuilder |
setConnectTimeout(org.apache.hc.core5.util.Timeout connectTimeout)
Determines the timeout in milliseconds until a connection is established.
|
ClientBuilder |
setDefaultMaxPoolSizePerRoute(int defaultMaxPoolSizePerRoute) |
ClientBuilder |
setMaxPoolSize(int maxPoolSize) |
ClientBuilder |
setMaxPoolSizePerRoute(org.apache.hc.core5.http.HttpHost httpHost,
int maxRoutePoolSize)
Set the connection pool default max size of concurrent connections to a specific route
|
ClientBuilder |
setResponseTimeout(int responseTimeout) |
ClientBuilder |
setResponseTimeout(org.apache.hc.core5.util.Timeout responseTimeout)
Determines the timeout until arrival of a response from the opposite
endpoint.
|
ClientBuilder |
setSocketTimeout(int socketTimeOutMillis) |
ClientBuilder |
setSocketTimeout(org.apache.hc.core5.util.Timeout socketTimeOut)
Defines the socket timeout (
SO_TIMEOUT ) in milliseconds,
which is the timeout for waiting for data or, put differently,
a maximum period inactivity between two consecutive data packets. |
ClientBuilder |
sslContext(SSLContext sslContext)
Sets
SSLContext |
ClientBuilder |
trustAllCertificates()
Accept all certificates
|
ClientBuilder |
trustAllHosts()
Accept all hosts
|
ClientBuilder |
useDefaultProxy()
Instruct HttpClient to use the standard JRE proxy selector to obtain proxy.
|
public ClientBuilder setConnectTimeout(org.apache.hc.core5.util.Timeout connectTimeout)
A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default: 10 seconds
connectTimeout
- The Connection Timeout (http.connection.timeout) – the time to establish the connection with the remote host.ConnectionConfig.Builder#setConnectTimeout(Timeout)
public ClientBuilder setConnectTimeout(int connectTimeout)
setConnectTimeout(Timeout)
public ClientBuilder setResponseTimeout(org.apache.hc.core5.util.Timeout responseTimeout)
A timeout value of zero is interpreted as an infinite timeout.
Please note that response timeout may be unsupported by HTTP transports with message multiplexing.
Default: 30 seconds
responseTimeout
- The timeout waiting for data – after the connection was established.RequestConfig.Builder#setResponseTimeout(Timeout)
public ClientBuilder setResponseTimeout(int responseTimeout)
setResponseTimeout(Timeout)
public ClientBuilder setConnectionRequestTimeout(org.apache.hc.core5.util.Timeout connectionRequestTimeout)
A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default: 30 seconds
Note: Can be overridden by addDefaultRequestConfigCustomizer(java.util.function.Consumer<org.apache.hc.client5.http.config.RequestConfig.Builder>)
connectionRequestTimeout
- The Connection Manager Timeout (http.connection-manager.timeout) –
the time to wait for a connection from the connection manager/pool.RequestConfig.Builder#setConnectionRequestTimeout
,
addDefaultRequestConfigCustomizer(java.util.function.Consumer<org.apache.hc.client5.http.config.RequestConfig.Builder>)
public ClientBuilder setConnectionRequestTimeout(int connectionRequestTimeout)
public ClientBuilder addDefaultRequestConfigCustomizer(Consumer<org.apache.hc.client5.http.config.RequestConfig.Builder> defaultRequestConfigBuilderConsumer)
defaultRequestConfigBuilderConsumer
- the consumer instance which provides RequestConfig.Builder
to customize default request configpublic ClientBuilder setSocketTimeout(org.apache.hc.core5.util.Timeout socketTimeOut)
SO_TIMEOUT
) in milliseconds,
which is the timeout for waiting for data or, put differently,
a maximum period inactivity between two consecutive data packets.
A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default: 30000ms
socketTimeOut
- The Socket Timeout (http.socket.timeout) – the time waiting for data – after the connection was established;
maximum time of inactivity between two data packets.ConnectionConfig.Builder#setSocketTimeout
,
addDefaultConnectionConfigCustomizer(Consumer)
public ClientBuilder setSocketTimeout(int socketTimeOutMillis)
public ClientBuilder addDefaultConnectionConfigCustomizer(Consumer<org.apache.hc.client5.http.config.ConnectionConfig.Builder> defaultConnectionConfigBuilderConsumer)
defaultConnectionConfigBuilderConsumer
- the consumer instance which provides ConnectionConfig.Builder
to customize default request configpublic ClientBuilder addHttpClientCustomizer(Consumer<org.apache.hc.client5.http.impl.classic.HttpClientBuilder> httpClientCustomizer)
Consumer
instance which gives the HttpClientBuilder
instance to customize
the CloseableHttpClient
before the http-request is builthttpClientCustomizer
- consumer instancepublic ClientBuilder setMaxPoolSize(int maxPoolSize)
maxPoolSize
- see documentation of HostPoolConfig.setMaxPoolSize(int)
public ClientBuilder setDefaultMaxPoolSizePerRoute(int defaultMaxPoolSizePerRoute)
defaultMaxPoolSizePerRoute
- see documentation of HostPoolConfig.setDefaultMaxPoolSizePerRoute(int)
public ClientBuilder setMaxPoolSizePerRoute(org.apache.hc.core5.http.HttpHost httpHost, int maxRoutePoolSize)
httpHost
- httpHostmaxRoutePoolSize
- maxRoutePoolSizepublic ClientBuilder enableDefaultRedirectStrategy()
DefaultRedirectStrategy
public ClientBuilder redirectStrategy(org.apache.hc.client5.http.protocol.RedirectStrategy redirectStrategy)
By default disabled.
redirectStrategy
- RedirectStrategy instanceRedirectStrategy
public ClientBuilder addDefaultHeader(String name, String value)
name
- name of header. Can't be nullvalue
- value of headerpublic ClientBuilder addDefaultHeader(org.apache.hc.core5.http.Header header)
header
- header instance. Can't be nullpublic ClientBuilder addDefaultHeaders(org.apache.hc.core5.http.Header... headers)
headers
- varargs of headers. Can't be nullpublic ClientBuilder addDefaultHeaders(Collection<? extends org.apache.hc.core5.http.Header> headers)
headers
- collections of headerspublic ClientBuilder addContentType(org.apache.hc.core5.http.ContentType contentType)
contentType
- content type of request headerpublic ClientBuilder proxy(org.apache.hc.core5.http.HttpHost proxy)
useDefaultProxy()
will be ignoredproxy
- HttpHost
instance to proxypublic ClientBuilder proxy(URI proxyUri)
useDefaultProxy()
will be ignored.proxyUri
- URI
instance to proxypublic ClientBuilder proxy(String host, int port)
host
- host of proxyport
- port of proxypublic ClientBuilder useDefaultProxy()
public ClientBuilder sslContext(SSLContext sslContext)
SSLContext
sslContext
- SSLContext instancepublic ClientBuilder hostnameVerifier(HostnameVerifier hostnameVerifier)
HostnameVerifier
hostnameVerifier
- HostnameVerifier instancepublic ClientBuilder trustAllCertificates()
HttpRequestBuildException
- when can't build ssl.public ClientBuilder trustAllHosts()
public org.apache.hc.client5.http.impl.classic.CloseableHttpClient build()
CloseableHttpClient
instance by build parameterspublic static ClientBuilder create()
Copyright © 2023. All rights reserved.