HttpClient
public static interface HttpClient.Builder
Builders are created by invoking newBuilder
. Each of the setter methods modifies the state of the builder and returns the same instance. Builders are not thread-safe and should not be used concurrently from multiple threads without external synchronization.
Modifier and Type | Field | Description |
---|---|---|
static final ProxySelector |
NO_PROXY |
A proxy selector that always return Proxy.NO_PROXY implying a direct connection. |
Modifier and Type | Method | Description |
---|---|---|
HttpClient.Builder |
authenticator |
Sets an authenticator to use for HTTP authentication. |
HttpClient |
build() |
Returns a new HttpClient built from the current state of this builder. |
HttpClient.Builder |
connectTimeout |
Sets the connect timeout duration for this client. |
HttpClient.Builder |
cookieHandler |
Sets a cookie handler. |
HttpClient.Builder |
executor |
Sets the executor to be used for asynchronous and dependent tasks. |
HttpClient.Builder |
followRedirects |
Specifies whether requests will automatically follow redirects issued by the server. |
default HttpClient.Builder |
localAddress |
Binds the socket to this local address when creating connections for sending requests. |
HttpClient.Builder |
priority |
Sets the default priority for any HTTP/2 requests sent from this client. |
HttpClient.Builder |
proxy |
Sets a ProxySelector . |
HttpClient.Builder |
sslContext |
Sets an SSLContext . |
HttpClient.Builder |
sslParameters |
Sets an SSLParameters . |
HttpClient.Builder |
version |
Requests a specific HTTP protocol version where possible. |
static final ProxySelector NO_PROXY
Proxy.NO_PROXY
implying a direct connection. This is a convenience object that can be passed to proxy(ProxySelector)
in order to build an instance of HttpClient
that uses no proxy.
HttpClient.Builder cookieHandler(CookieHandler cookieHandler)
cookieHandler
- the cookie handlerHttpClient.Builder connectTimeout(Duration duration)
In the case where a new connection needs to be established, if the connection cannot be established within the given
duration
, then HttpClient::send
throws an HttpConnectTimeoutException
, or HttpClient::sendAsync
completes exceptionally with an HttpConnectTimeoutException
. If a new connection does not need to be established, for example if a connection can be reused from a previous request, then this timeout duration has no effect.
duration
- the duration to allow the underlying connection to be establishedIllegalArgumentException
- if the duration is non-positiveHttpClient.Builder sslContext(SSLContext sslContext)
SSLContext
. If this method is not invoked prior to building, then newly built clients will use the default context, which is normally adequate for client applications that do not need to specify protocols, or require client authentication.
sslContext
- the SSLContextHttpClient.Builder sslParameters(SSLParameters sslParameters)
SSLParameters
. If this method is not invoked prior to building, then newly built clients will use a default, implementation specific, set of parameters.
Some parameters which are used internally by the HTTP Client implementation (such as the application protocol list) should not be set by callers, as they may be ignored. The contents of the given object are copied.
sslParameters
- the SSLParametersHttpClient.Builder executor(Executor executor)
If this method is not invoked prior to building, a default executor is created for each newly built
HttpClient
.
executor
- the ExecutorHttpClient.Builder followRedirects(HttpClient.Redirect policy)
If this method is not invoked prior to building, then newly built clients will use a default redirection policy of NEVER
.
policy
- the redirection policyHttpClient.Builder version(HttpClient.Version version)
If this method is not invoked prior to building, then newly built clients will prefer HTTP/2.
If set to HTTP/2, then each request will attempt to upgrade to HTTP/2. If the upgrade succeeds, then the response to this request will use HTTP/2 and all subsequent requests and responses to the same origin server will use HTTP/2. If the upgrade fails, then the response will be handled using HTTP/1.1
version
- the requested HTTP protocol versionHttpClient.Builder priority(int priority)
1
and 256
(inclusive).priority
- the priority weightingIllegalArgumentException
- if the given priority is out of rangeHttpClient.Builder proxy(ProxySelector proxySelector)
ProxySelector
.ProxySelector::of
provides a ProxySelector
which uses a single proxy for all requests. The system-wide proxy selector can be retrieved by ProxySelector.getDefault()
.NO_PROXY
or one returned by ProxySelector::of
, before building.proxySelector
- the ProxySelectorHttpClient.Builder authenticator(Authenticator authenticator)
authenticator
- the Authenticatordefault HttpClient.Builder localAddress(InetAddress localAddr)
If no local address is set or null
is passed to this method then sockets created by the HTTP client will be bound to an automatically assigned socket address.
Common usages of the HttpClient
do not require this method to be called. Setting a local address, through this method, is only for advanced usages where users of the HttpClient
require specific control on which network interface gets used for the HTTP communication. Callers of this method are expected to be aware of the networking configurations of the system where the HttpClient
will be used and care should be taken to ensure the correct localAddr
is passed. Failure to do so can result in requests sent through the HttpClient
to fail.
UnsupportedOperationException
. Builder
s obtained through HttpClient.newBuilder()
provide an implementation of this method that allows setting the local address.localAddr
- The local address of the socket. Can be null.UnsupportedOperationException
- if this builder doesn't support configuring a local address or if the passed localAddr
is not supported by this HttpClient
implementation.HttpClient build()
HttpClient
built from the current state of this builder.local address
is a non-null address and a security manager is installed, then this method calls checkListen
to check that the caller has necessary permission to bind to that local address.HttpClient
UncheckedIOException
- may be thrown if underlying IO resources required by the implementation cannot be allocated. For instance, if the implementation requires a Selector
, and opening one fails due to lack of necessary resources.SecurityException
- If a security manager has been installed and the security manager's checkListen
method disallows binding to the given address.
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.net.http/java/net/http/HttpClient.Builder.html