Class ClientBuilder
- java.lang.Object
-
- com.jsunsoft.http.ClientBuilder
-
public class ClientBuilder extends Object
Builder forCloseableHttpClient
.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 ofCloseableHttpClient
instances in the application.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ClientBuilder
addContentType(org.apache.http.entity.ContentType contentType)
Sets content type to headerClientBuilder
addDefaultHeader(String name, String value)
Header needs to be the same for all requests which go through the built CloseableHttpClientClientBuilder
addDefaultHeader(org.apache.http.Header header)
Header needs to be the same for all requests which go through the built CloseableHttpClientClientBuilder
addDefaultHeaders(Collection<? extends org.apache.http.Header> headers)
Headers need to be the same for all requests which go through the built CloseableHttpClientClientBuilder
addDefaultHeaders(org.apache.http.Header... headers)
Headers need to be the same for all requests which go through the built CloseableHttpClientClientBuilder
addDefaultPoolingHttpClientConnectionManagerCustomizer(Consumer<org.apache.http.impl.conn.PoolingHttpClientConnectionManager> defaultPoolingHttpClientConnectionManagerCustomizerConsumer)
ClientBuilder
addDefaultRequestConfigCustomizer(Consumer<org.apache.http.client.config.RequestConfig.Builder> defaultRequestConfigBuilderConsumer)
ClientBuilder
addHttpClientCustomizer(Consumer<org.apache.http.impl.client.HttpClientBuilder> httpClientCustomizer)
The method takes theConsumer
instance which gives theHttpClientBuilder
instance to customize theCloseableHttpClient
before the http-request is builtorg.apache.http.impl.client.CloseableHttpClient
build()
Build CloseableHttpClientClientBuilder
connectionRequestTimeout(int connectionRequestTimeout)
The timeout in milliseconds used when requesting a connection from the connection manager.static ClientBuilder
create()
ClientBuilder
enableAutomaticRetries()
By default, theHttpClientBuilder.disableAutomaticRetries()
called.ClientBuilder
enableCookieManagement()
By default, theHttpClientBuilder.disableCookieManagement()
called.ClientBuilder
enableDefaultRedirectStrategy()
By default, only GET requests resulting in a redirect are automatically followed.ClientBuilder
enableLaxRedirectStrategy()
By default, only GET requests resulting in a redirect are automatically followed.ClientBuilder
hostnameVerifier(HostnameVerifier hostnameVerifier)
SetsHostnameVerifier
ClientBuilder
proxy(String host, int port)
ClientBuilder
proxy(URI proxyUri)
Added proxy by proxyUri.ClientBuilder
proxy(org.apache.http.HttpHost proxy)
Added proxy host.ClientBuilder
redirectStrategy(org.apache.http.client.RedirectStrategy redirectStrategy)
By default disabled.ClientBuilder
setConnectTimeout(int connectTimeout)
Determines the timeout in milliseconds until a connection is established.ClientBuilder
setDefaultMaxPoolSizePerRoute(int defaultMaxPoolSizePerRoute)
ClientBuilder
setMaxPoolSize(int maxPoolSize)
ClientBuilder
setMaxPoolSizePerRoute(org.apache.http.HttpHost httpHost, int maxRoutePoolSize)
Set the connection pool default max size of concurrent connections to a specific routeClientBuilder
socketTimeOut(int 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)
SetsSSLContext
ClientBuilder
trustAllCertificates()
Accept all certificatesClientBuilder
trustAllHosts()
Accept all hostsClientBuilder
useDefaultProxy()
Instruct HttpClient to use the standard JRE proxy selector to obtain proxy.
-
-
-
Method Detail
-
create
public static ClientBuilder create()
-
setConnectTimeout
public ClientBuilder setConnectTimeout(int connectTimeout)
Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout.A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default:
Note: Can be overridden by addDefaultRequestConfigCustomizer(java.util.function.Consumer<org.apache.http.client.config.RequestConfig.Builder>)5000ms
- Parameters:
connectTimeout
- The Connection Timeout (http.connection.timeout) – the time to establish the connection with the remote host.- Returns:
- ClientBuilder instance
- See Also:
RequestConfig.Builder.setConnectTimeout(int)
-
socketTimeOut
public ClientBuilder socketTimeOut(int 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).A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default:
Note: Can be overridden by addDefaultRequestConfigCustomizer(java.util.function.Consumer<org.apache.http.client.config.RequestConfig.Builder>)30000ms
- Parameters:
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.- Returns:
- ClientBuilder instance
- See Also:
RequestConfig.Builder.setSocketTimeout(int)
-
connectionRequestTimeout
public ClientBuilder connectionRequestTimeout(int connectionRequestTimeout)
The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout.A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).
Default:
30000ms
Note: Can be overridden by addDefaultRequestConfigCustomizer(java.util.function.Consumer<org.apache.http.client.config.RequestConfig.Builder>)
- Parameters:
connectionRequestTimeout
- The Connection Manager Timeout (http.connection-manager.timeout) – the time to wait for a connection from the connection manager/pool. By default 30000ms- Returns:
- ClientBuilder instance
- See Also:
RequestConfig.Builder.setConnectionRequestTimeout(int)
,addDefaultRequestConfigCustomizer(java.util.function.Consumer<org.apache.http.client.config.RequestConfig.Builder>)
-
addDefaultRequestConfigCustomizer
public ClientBuilder addDefaultRequestConfigCustomizer(Consumer<org.apache.http.client.config.RequestConfig.Builder> defaultRequestConfigBuilderConsumer)
- Parameters:
defaultRequestConfigBuilderConsumer
- the consumer instance which providesRequestConfig.Builder
to customize default request config- Returns:
- ClientBuilder instance
-
addDefaultPoolingHttpClientConnectionManagerCustomizer
public ClientBuilder addDefaultPoolingHttpClientConnectionManagerCustomizer(Consumer<org.apache.http.impl.conn.PoolingHttpClientConnectionManager> defaultPoolingHttpClientConnectionManagerCustomizerConsumer)
- Parameters:
defaultPoolingHttpClientConnectionManagerCustomizerConsumer
- the consumer instance which providesPoolingHttpClientConnectionManager
to customize default connection manager- Returns:
- ClientBuilder instance
-
addHttpClientCustomizer
public ClientBuilder addHttpClientCustomizer(Consumer<org.apache.http.impl.client.HttpClientBuilder> httpClientCustomizer)
The method takes theConsumer
instance which gives theHttpClientBuilder
instance to customize theCloseableHttpClient
before the http-request is built- Parameters:
httpClientCustomizer
- consumer instance- Returns:
- ClientBuilder instance
-
setMaxPoolSize
public ClientBuilder setMaxPoolSize(int maxPoolSize)
- Parameters:
maxPoolSize
- see documentation ofHostPoolConfig.setMaxPoolSize(int)
- Returns:
- ClientBuilder instance
-
setDefaultMaxPoolSizePerRoute
public ClientBuilder setDefaultMaxPoolSizePerRoute(int defaultMaxPoolSizePerRoute)
- Parameters:
defaultMaxPoolSizePerRoute
- see documentation ofHostPoolConfig.setDefaultMaxPoolSizePerRoute(int)
- Returns:
- ClientBuilder instance
-
setMaxPoolSizePerRoute
public ClientBuilder setMaxPoolSizePerRoute(org.apache.http.HttpHost httpHost, int maxRoutePoolSize)
Set the connection pool default max size of concurrent connections to a specific route- Parameters:
httpHost
- httpHostmaxRoutePoolSize
- maxRoutePoolSize- Returns:
- ClientBuilder instance
-
enableLaxRedirectStrategy
public ClientBuilder enableLaxRedirectStrategy()
By default, only GET requests resulting in a redirect are automatically followed. If a POST requests is answered with either HTTP 301 Moved Permanently or with 302 Found – the redirect is not automatically followed.If the 301 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
By default disabled.
- Returns:
- ClientBuilder instance
- See Also:
LaxRedirectStrategy
-
enableDefaultRedirectStrategy
public ClientBuilder enableDefaultRedirectStrategy()
By default, only GET requests resulting in a redirect are automatically followed. If a POST requests is answered with either HTTP 301 Moved Permanently or with 302 Found – the redirect is not automatically followed.If the 301 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
By default disabled.
- Returns:
- ClientBuilder instance
- See Also:
DefaultRedirectStrategy
-
redirectStrategy
public ClientBuilder redirectStrategy(org.apache.http.client.RedirectStrategy redirectStrategy)
By default disabled.
- Parameters:
redirectStrategy
- RedirectStrategy instance- Returns:
- ClientBuilder instance
- See Also:
RedirectStrategy
-
addDefaultHeader
public ClientBuilder addDefaultHeader(String name, String value)
Header needs to be the same for all requests which go through the built CloseableHttpClient- Parameters:
name
- name of header. Can't be nullvalue
- value of header- Returns:
- ClientBuilder instance
-
addDefaultHeader
public ClientBuilder addDefaultHeader(org.apache.http.Header header)
Header needs to be the same for all requests which go through the built CloseableHttpClient- Parameters:
header
- header instance. Can't be null- Returns:
- ClientBuilder instance
-
addDefaultHeaders
public ClientBuilder addDefaultHeaders(org.apache.http.Header... headers)
Headers need to be the same for all requests which go through the built CloseableHttpClient- Parameters:
headers
- varargs of headers. Can't be null- Returns:
- ClientBuilder instance
-
addDefaultHeaders
public ClientBuilder addDefaultHeaders(Collection<? extends org.apache.http.Header> headers)
Headers need to be the same for all requests which go through the built CloseableHttpClient- Parameters:
headers
- collections of headers- Returns:
- ClientBuilder instance
-
addContentType
public ClientBuilder addContentType(org.apache.http.entity.ContentType contentType)
Sets content type to header- Parameters:
contentType
- content type of request header- Returns:
- ClientBuilder instance
-
proxy
public ClientBuilder proxy(org.apache.http.HttpHost proxy)
Added proxy host. By default is null. If has proxy instance methoduseDefaultProxy()
will be ignored- Parameters:
proxy
-HttpHost
instance to proxy- Returns:
- ClientBuilder instance
-
proxy
public ClientBuilder proxy(URI proxyUri)
Added proxy by proxyUri. By default is null. If has proxy instance methoduseDefaultProxy()
will be ignored.- Parameters:
proxyUri
-URI
instance to proxy- Returns:
- ClientBuilder instance
-
proxy
public ClientBuilder proxy(String host, int port)
- Parameters:
host
- host of proxyport
- port of proxy- Returns:
- ClientBuilder instance
-
useDefaultProxy
public ClientBuilder useDefaultProxy()
Instruct HttpClient to use the standard JRE proxy selector to obtain proxy.- Returns:
- ClientBuilder instance
-
sslContext
public ClientBuilder sslContext(SSLContext sslContext)
SetsSSLContext
- Parameters:
sslContext
- SSLContext instance- Returns:
- ClientBuilder instance
-
hostnameVerifier
public ClientBuilder hostnameVerifier(HostnameVerifier hostnameVerifier)
SetsHostnameVerifier
- Parameters:
hostnameVerifier
- HostnameVerifier instance- Returns:
- ClientBuilder instance
-
trustAllCertificates
public ClientBuilder trustAllCertificates()
Accept all certificates- Returns:
- ClientBuilder instance
- Throws:
HttpRequestBuildException
- when can't build ssl.
-
trustAllHosts
public ClientBuilder trustAllHosts()
Accept all hosts- Returns:
- ClientBuilder instance
-
enableCookieManagement
public ClientBuilder enableCookieManagement()
By default, theHttpClientBuilder.disableCookieManagement()
called. This method will prevent the call.- Returns:
- ClientBuilder instance
-
enableAutomaticRetries
public ClientBuilder enableAutomaticRetries()
By default, theHttpClientBuilder.disableAutomaticRetries()
called. This method will prevent the call.- Returns:
- ClientBuilder instance
-
build
public org.apache.http.impl.client.CloseableHttpClient build()
Build CloseableHttpClient- Returns:
CloseableHttpClient
instance by build parameters
-
-