Class OkHttpHttpClientBuilder
HttpClient backed by OkHttp.-
Constructor Summary
ConstructorsConstructorDescriptionCreates OkHttpHttpClientBuilder.OkHttpHttpClientBuilder(okhttp3.OkHttpClient okHttpClient) Creates OkHttpHttpClientBuilder from the builder of an existing OkHttpClient. -
Method Summary
Modifier and TypeMethodDescriptionaddNetworkInterceptor(okhttp3.Interceptor networkInterceptor) Add a network layer interceptor to Http request pipeline.build()Creates a new OkHttp-backedHttpClientinstance on every call, using the configuration set in this builder at the time of thebuild()method call.callTimeout(Duration callTimeout) Sets the default timeout for complete calls.configuration(Configuration configuration) Sets the configuration store that is used during construction of the HTTP client.connectionPool(okhttp3.ConnectionPool connectionPool) Sets the Http connection pool.connectionTimeout(Duration connectionTimeout) Sets the connection timeout for a request to be sent.dispatcher(okhttp3.Dispatcher dispatcher) Sets the dispatcher that also composes the thread pool for executing HTTP requests.followRedirects(boolean followRedirects) Sets the followRedirect flag on the underlying OkHttp-backedHttpClient.hostnameVerifier(HostnameVerifier hostnameVerifier) Sets theHostnameVerifierto use for HTTPS connections.networkInterceptors(List<okhttp3.Interceptor> networkInterceptors) Add network layer interceptors to Http request pipeline.proxy(ProxyOptions proxyOptions) Sets the proxy.readTimeout(Duration readTimeout) Sets the read timeout duration used when reading the server response.sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager) Sets theSSLSocketFactoryto use for HTTPS connections.writeTimeout(Duration writeTimeout) Sets the writing timeout for a request to be sent.
-
Constructor Details
-
OkHttpHttpClientBuilder
public OkHttpHttpClientBuilder()Creates OkHttpHttpClientBuilder. -
OkHttpHttpClientBuilder
public OkHttpHttpClientBuilder(okhttp3.OkHttpClient okHttpClient) Creates OkHttpHttpClientBuilder from the builder of an existing OkHttpClient.- Parameters:
okHttpClient- the httpclient
-
-
Method Details
-
followRedirects
Sets the followRedirect flag on the underlying OkHttp-backed
HttpClient.If this is set to 'true' redirects will be followed automatically, and if your HTTP pipeline is configured with a redirect policy it will not be called.
- Parameters:
followRedirects- The followRedirects value to use.- Returns:
- The updated
OkHttpHttpClientBuilderobject.
-
configuration
Sets the configuration store that is used during construction of the HTTP client.The default configuration store is a clone of the
global configuration store.- Parameters:
configuration- The configuration store.- Returns:
- The updated
OkHttpHttpClientBuilderobject.
-
connectionPool
Sets the Http connection pool.- Parameters:
connectionPool- The OkHttp connection pool to use.- Returns:
- The updated
OkHttpHttpClientBuilderobject. - See Also:
-
dispatcher
Sets the dispatcher that also composes the thread pool for executing HTTP requests.If this method is not invoked prior to
building, handling for a default will be based on whether the builder was created with the default constructor or the constructor that accepts an existingOkHttpClient. If the default constructor was used, a newDispatcherwill be created with based onSharedExecutorService.getInstance()}. If the constructor that accepts an existingOkHttpClientwas used, the dispatcher from the existingOkHttpClientwill be used.- Parameters:
dispatcher- The dispatcher to use.- Returns:
- The updated
OkHttpHttpClientBuilderobject. - See Also:
-
connectionTimeout
Sets the connection timeout for a request to be sent.The connection timeout begins once the request attempts to connect to the remote host and finishes once the connection is resolved.
If
connectTimeoutis null eitherConfiguration.REQUEST_CONNECT_TIMEOUT_IN_MSor a 10-second timeout will be used, if it is aDurationless than or equal to zero then no timeout will be applied. When applying the timeout the greatest of one millisecond and the value ofconnectTimeoutwill be used.By default, the connection timeout is 10 seconds.
- Parameters:
connectionTimeout- Connect timeout duration.- Returns:
- The updated
OkHttpHttpClientBuilderobject. - See Also:
-
callTimeout
Sets the default timeout for complete calls.The call timeout spans the entire call: resolving DNS, connecting, writing the request body, server processing, and reading the response body.
Null or
Duration.ZEROmeans no call timeout, otherwise values must be between 1 andInteger.MAX_VALUEwhen converted to milliseconds.By default, call timeout is not enabled.
- Parameters:
callTimeout- Call timeout duration.- Returns:
- The updated
OkHttpHttpClientBuilderobject. - See Also:
-
readTimeout
Sets the read timeout duration used when reading the server response.The read timeout begins once the first response read is triggered after the server response is received. This timeout triggers periodically but won't fire its operation if another read operation has completed between when the timeout is triggered and completes.
If
readTimeoutis null orConfiguration.REQUEST_READ_TIMEOUT_IN_MSor a 60-second timeout will be used, if it is aDurationless than or equal to zero then no timeout period will be applied to response read. When applying the timeout the greatest of one millisecond and the value ofreadTimeoutwill be used.- Parameters:
readTimeout- Read timeout duration.- Returns:
- The updated
OkHttpHttpClientBuilderobject. - See Also:
-
writeTimeout
Sets the writing timeout for a request to be sent.The writing timeout does not apply to the entire request but to the request being sent over the wire. For example a request body which emits
108KBbuffers will trigger10write operations, the last write tracker will update when each operation completes and the outbound buffer will be periodically checked to determine if it is still draining.If
writeTimeoutis null eitherConfiguration.REQUEST_WRITE_TIMEOUT_IN_MSor a 60-second timeout will be used, if it is aDurationless than or equal to zero then no write timeout will be applied. When applying the timeout the greatest of one millisecond and the value ofwriteTimeoutwill be used.- Parameters:
writeTimeout- Write operation timeout duration.- Returns:
- The updated
OkHttpHttpClientBuilderobject. - See Also:
-
addNetworkInterceptor
Add a network layer interceptor to Http request pipeline.- Parameters:
networkInterceptor- the interceptor to add- Returns:
- The updated
OkHttpHttpClientBuilderobject
-
networkInterceptors
Add network layer interceptors to Http request pipeline.This replaces all previously-set interceptors.
- Parameters:
networkInterceptors- The interceptors to add.- Returns:
- The updated
OkHttpHttpClientBuilderobject.
-
proxy
Sets the proxy.- Parameters:
proxyOptions- The proxy configuration to use.- Returns:
- The updated
OkHttpHttpClientBuilderobject.
-
sslSocketFactory
public OkHttpHttpClientBuilder sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager) Sets theSSLSocketFactoryto use for HTTPS connections.If left unset, or set to null, HTTPS connections will use the default SSL socket factory (
SSLSocketFactory.getDefault()).- Parameters:
sslSocketFactory- TheSSLSocketFactoryto use for HTTPS connections.trustManager- TheX509TrustManagerto use for HTTPS connections.- Returns:
- The updated
OkHttpHttpClientBuilderobject.
-
hostnameVerifier
Sets theHostnameVerifierto use for HTTPS connections.If left unset, or set to null, HTTPS connections will use a default hostname verifier.
- Parameters:
hostnameVerifier- TheHostnameVerifierto use for HTTPS connections.- Returns:
- The updated
OkHttpHttpClientBuilderobject.
-
build
Creates a new OkHttp-backedHttpClientinstance on every call, using the configuration set in this builder at the time of thebuild()method call.- Returns:
- A new OkHttp-backed
HttpClientinstance.
-