public abstract class HttpClient extends ClientTransport<HttpClient,HttpClientConfig>
ClientTransport.connect() is ultimately called.
 Transfer-Encoding: chunked will be applied for those HTTP methods for which
 a request body is expected. Content-Length provided via request headers
 will disable Transfer-Encoding: chunked.
 
Examples:
HttpClient.create() .baseUrl("https://example.com") .get() .response() .block();HttpClient.create() .post() .uri("https://example.com") .send(Flux.just(bb1, bb2, bb3)) .responseSingle((res, content) -> Mono.just(res.status().code())) .block();HttpClient.create() .baseUri("https://example.com") .post() .send(ByteBufFlux.fromString(flux)) .responseSingle((res, content) -> Mono.just(res.status().code())) .block();
| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
HttpClient.RedirectSendHandler
Marker interface for use with  
HttpClient.RequestSender.send(BiFunction). | 
static interface  | 
HttpClient.RequestSender
Allow a request body configuration before calling one of the terminal,  
Publisher based, HttpClient.ResponseReceiver API. | 
static interface  | 
HttpClient.ResponseReceiver<S extends HttpClient.ResponseReceiver<?>>
A response extractor for this configured  
HttpClient. | 
static interface  | 
HttpClient.UriConfiguration<S extends HttpClient.UriConfiguration<?>>
A URI configuration. 
 | 
static interface  | 
HttpClient.WebsocketReceiver<S extends HttpClient.WebsocketReceiver<?>>
Allow a websocket handling. 
 | 
static interface  | 
HttpClient.WebsocketSender
Allow a request body configuration before calling one of the terminal,  
Publisher based, HttpClient.WebsocketReceiver API. | 
| Modifier and Type | Field and Description | 
|---|---|
static String | 
USER_AGENT  | 
| Constructor and Description | 
|---|
HttpClient()  | 
| Modifier and Type | Method and Description | 
|---|---|
HttpClient | 
baseUrl(String baseUrl)
Configure URI to use for this request/response. 
 | 
HttpClient | 
compress(boolean compressionEnabled)
Specifies whether GZip compression is enabled. 
 | 
HttpClient | 
cookie(Cookie cookie)
Apply cookies configuration. 
 | 
HttpClient | 
cookie(String name,
      Consumer<? super Cookie> cookieBuilder)
Apply cookies configuration. 
 | 
HttpClient | 
cookieCodec(ClientCookieEncoder encoder)
Configure the
  
ClientCookieEncoder, ClientCookieDecoder will be
 chosen based on the encoder. | 
HttpClient | 
cookieCodec(ClientCookieEncoder encoder,
           ClientCookieDecoder decoder)
Configure the
  
ClientCookieEncoder and ClientCookieDecoder. | 
HttpClient | 
cookiesWhen(String name,
           Function<? super Cookie,Mono<? extends Cookie>> cookieBuilder)
Apply cookies configuration emitted by the returned Mono before requesting. 
 | 
static HttpClient | 
create()
Prepare a pooled  
HttpClient. | 
static HttpClient | 
create(ConnectionProvider connectionProvider)
Prepare an  
HttpClient. | 
HttpClient.RequestSender | 
delete()
HTTP DELETE to connect the  
HttpClient. | 
HttpClient | 
disableRetry(boolean disableRetry)
Option to disable  
retry once support for the outgoing requests that fail with
 AbortedException.isConnectionReset(Throwable). | 
HttpClient | 
doAfterRequest(BiConsumer<? super HttpClientRequest,? super Connection> doAfterRequest)
Setup a callback called when  
HttpClientRequest has been sent
 and HttpClientState.REQUEST_SENT has been emitted. | 
HttpClient | 
doAfterResponseSuccess(BiConsumer<? super HttpClientResponse,? super Connection> doAfterResponseSuccess)
Setup a callback called after  
HttpClientResponse has been fully received
 and HttpClientState.RESPONSE_COMPLETED has been emitted. | 
HttpClient | 
doOnError(BiConsumer<? super HttpClientRequest,? super Throwable> doOnRequestError,
         BiConsumer<? super HttpClientResponse,? super Throwable> doOnResponseError)
Setup a callback called when  
HttpClientRequest has not been sent and when HttpClientResponse has not been fully
 received. | 
HttpClient | 
doOnRedirect(BiConsumer<? super HttpClientResponse,? super Connection> doOnRedirect)
Setup a callback called after  
HttpClientResponse headers have been
 received and the request is about to be redirected. | 
HttpClient | 
doOnRequest(BiConsumer<? super HttpClientRequest,? super Connection> doOnRequest)
Setup a callback called when  
HttpClientRequest is about to be sent
 and HttpClientState.REQUEST_PREPARED has been emitted. | 
HttpClient | 
doOnRequestError(BiConsumer<? super HttpClientRequest,? super Throwable> doOnRequestError)
Setup a callback called when  
HttpClientRequest has not been sent. | 
HttpClient | 
doOnResponse(BiConsumer<? super HttpClientResponse,? super Connection> doOnResponse)
Setup a callback called after  
HttpClientResponse headers have been
 received and HttpClientState.RESPONSE_RECEIVED has been emitted. | 
HttpClient | 
doOnResponseError(BiConsumer<? super HttpClientResponse,? super Throwable> doOnResponseError)
Setup a callback called when  
HttpClientResponse has not been fully
 received, HttpClientState.RESPONSE_INCOMPLETE has been emitted. | 
HttpClient | 
followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse> predicate)
Enables auto-redirect support if the passed
  
Predicate matches. | 
HttpClient | 
followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse> predicate,
              BiConsumer<HttpHeaders,HttpClientRequest> redirectRequestBiConsumer)
Variant of  
followRedirect(BiPredicate) that also accepts
 BiConsumer that provides the headers from the previous request and the current redirect request. | 
HttpClient | 
followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse> predicate,
              Consumer<HttpClientRequest> redirectRequestConsumer)
Variant of  
followRedirect(BiPredicate) that also accepts a redirect request
 processor. | 
HttpClient | 
followRedirect(boolean followRedirect)
Specifies whether HTTP status 301|302|303|307|308 auto-redirect support is enabled. 
 | 
HttpClient | 
followRedirect(boolean followRedirect,
              BiConsumer<HttpHeaders,HttpClientRequest> redirectRequestBiConsumer)
Variant of  
followRedirect(boolean) that also accepts
 BiConsumer that provides the headers from the previous request and the current redirect request. | 
HttpClient | 
followRedirect(boolean followRedirect,
              Consumer<HttpClientRequest> redirectRequestConsumer)
Variant of  
followRedirect(boolean) that also accepts a redirect request
 processor. | 
static HttpClient | 
from(TcpClient tcpClient)
Deprecated. 
 
Use the other methods exposed by  
HttpClient to achieve the same configurations.
 This method will be removed in version 1.1.0. | 
HttpClient.ResponseReceiver<?> | 
get()
HTTP GET to connect the  
HttpClient. | 
HttpClient.ResponseReceiver<?> | 
head()
HTTP HEAD to connect the  
HttpClient. | 
HttpClient | 
headers(Consumer<? super HttpHeaders> headerBuilder)
Apply headers configuration. 
 | 
HttpClient | 
headersWhen(Function<? super HttpHeaders,Mono<? extends HttpHeaders>> headerBuilder)
Apply headers configuration emitted by the returned Mono before requesting. 
 | 
HttpClient | 
http2Settings(Consumer<Http2SettingsSpec.Builder> http2Settings)
Apply HTTP/2 configuration. 
 | 
HttpClient | 
httpMessageLogFactory(HttpMessageLogFactory httpMessageLogFactory)
When  
HttpMessage is about to be logged the configured factory will be used for
 generating a sanitized log message. | 
HttpClient | 
httpResponseDecoder(Function<HttpResponseDecoderSpec,HttpResponseDecoderSpec> responseDecoderOptions)
Configure the  
HttpClientCodec's response decoding options. | 
HttpClient | 
keepAlive(boolean keepAlive)
Enable or Disable Keep-Alive support for the outgoing request. 
 | 
HttpClient | 
mapConnect(Function<? super Mono<? extends Connection>,? extends Mono<? extends Connection>> connector)
Intercept the connection lifecycle and allows delaying, transform or inject a
 context. 
 | 
HttpClient | 
metrics(boolean enable,
       Function<String,String> uriTagValue)
Whether to enable metrics to be collected and registered in Micrometer's
  
globalRegistry
 under the name Metrics.HTTP_CLIENT_PREFIX. | 
HttpClient | 
metrics(boolean enable,
       Supplier<? extends ChannelMetricsRecorder> recorder)
Specifies whether the metrics are enabled on the  
Transport. | 
HttpClient | 
metrics(boolean enable,
       Supplier<? extends ChannelMetricsRecorder> recorder,
       Function<String,String> uriValue)
Specifies whether the metrics are enabled on the  
HttpClient. | 
static HttpClient | 
newConnection()
Prepare an unpooled  
HttpClient. | 
HttpClient | 
noSSL()
Removes any previously applied SSL configuration customization. 
 | 
HttpClient | 
observe(ConnectionObserver observer)
Set or add the given  
ConnectionObserver to observe the connection state changes. | 
HttpClient.ResponseReceiver<?> | 
options()
HTTP OPTIONS to connect the  
HttpClient. | 
HttpClient.RequestSender | 
patch()
HTTP PATCH to connect the  
HttpClient. | 
HttpClient | 
port(int port)
The port to which this client should connect. 
 | 
HttpClient.RequestSender | 
post()
HTTP POST to connect the  
HttpClient. | 
HttpClient | 
protocol(HttpProtocol... supportedProtocols)
The HTTP protocol to support. 
 | 
HttpClient.RequestSender | 
put()
HTTP PUT to connect the  
HttpClient. | 
HttpClient | 
remoteAddress(Supplier<? extends SocketAddress> remoteAddressSupplier)
The address to which this client should connect on each subscribe. 
 | 
HttpClient.RequestSender | 
request(HttpMethod method)
Use the passed HTTP method to connect the  
HttpClient. | 
HttpClient | 
responseTimeout(Duration maxReadOperationInterval)
Specifies the maximum duration allowed between each network-level read operation while reading a given response
 (resolution: ms). 
 | 
HttpClient | 
secure()
Enable default sslContext support. 
 | 
HttpClient | 
secure(Consumer<? super SslProvider.SslContextSpec> sslProviderBuilder)
Apply an SSL configuration customization via the passed builder. 
 | 
HttpClient | 
secure(SslProvider sslProvider)
Apply an SSL configuration via the passed  
SslProvider. | 
HttpClient | 
tcpConfiguration(Function<? super TcpClient,? extends TcpClient> tcpMapper)
Deprecated. 
 
Use the other methods exposed by  
HttpClient to achieve the same configurations.
 This method will be removed in version 1.1.0. | 
Mono<Void> | 
warmup()
Based on the actual configuration, returns a  
Mono that triggers:
 
     an initialization of the event loop group
     an initialization of the host name resolver
     loads the necessary native libraries for the transport
     loads the necessary native libraries for the security if there is such
 
 By default, when method is not used, the first request absorbs the extra time needed to load resources. | 
HttpClient.WebsocketSender | 
websocket()
HTTP Websocket to connect the  
HttpClient. | 
HttpClient.WebsocketSender | 
websocket(WebsocketClientSpec websocketClientSpec)
HTTP Websocket to connect the  
HttpClient. | 
HttpClient | 
wiretap(boolean enable)
Apply or remove a wire logger configuration using  
Transport category (logger),
 DEBUG logger level and AdvancedByteBufFormat.HEX_DUMP for ByteBuf format,
 which means both events and content will be logged and the content will be in hex format. | 
connect, connectNow, connectNow, doAfterResolve, doOnConnect, doOnConnected, doOnDisconnected, doOnResolve, doOnResolveError, host, noProxy, proxy, proxyWithSystemProperties, resolver, resolver, runOnattr, bindAddress, channelGroup, configuration, doOnChannelInit, duplicate, metrics, option, runOn, runOn, wiretap, wiretap, wiretap, wiretappublic static final String USER_AGENT
public static HttpClient create()
HttpClient. HttpClient.UriConfiguration.uri(String) or
 baseUrl(String) should be invoked before a verb
 request(HttpMethod) is selected.HttpClientpublic static HttpClient create(ConnectionProvider connectionProvider)
HttpClient. HttpClient.UriConfiguration.uri(String) or
 baseUrl(String) should be invoked before a verb
 request(HttpMethod) is selected.connectionProvider - the ConnectionProvider to be usedHttpClient@Deprecated public static HttpClient from(TcpClient tcpClient)
HttpClient to achieve the same configurations.
 This method will be removed in version 1.1.0.HttpClient
 
 Note:
 There isn't only one method that replaces this deprecated method.
 The configuration that can be done with this deprecated method,
 can also be done with the other methods exposed by HttpClient.
 
Examples:
Configuration via the deprecated '.from(...)' method
 
 HttpClient.from(
     TcpClient.attr(...) // configures the channel attributes
              .bindAddress(...) // configures the bind (local) address
              .channelGroup(...) // configures the channel group
              .doOnChannelInit(...) // configures the channel handler
              .doOnConnected(...) // configures the doOnConnected callback
              .doOnDisconnected(...) // configures the doOnDisconnected callback
              .metrics(...) // configures the metrics
              .observe() // configures the connection observer
              .option(...) // configures the channel options
              .proxy(...) // configures the proxy
              .remoteAddress(...) // configures the remote address
              .resolver(...) // configures the host names resolver
              .runOn(...) // configures the event loop group
              .secure() // configures the SSL
              .wiretap()) // configures the wire logging
 
 
 Configuration via the other methods exposed by HttpClient
 
 HttpClient.attr(...) // configures the channel attributes
           .bindAddress(...) // configures the bind (local) address
           .channelGroup(...) // configures the channel group
           .doOnChannelInit(...) // configures the channel handler
           .doOnConnected(...) // configures the doOnConnected callback
           .doOnDisconnected(...) // configures the doOnDisconnected callback
           .metrics(...) // configures the metrics
           .observe() // configures the connection observer
           .option(...) // configures the channel options
           .proxy(...) // configures the proxy
           .remoteAddress(...) // configures the remote address
           .resolver(...) // configures the host names resolver
           .runOn(...) // configures the event loop group
           .secure() // configures the SSL
           .wiretap() // configures the wire logging
 
 
 Wire logging in plain text
 
 HttpClient.wiretap("logger", LogLevel.DEBUG, AdvancedByteBufFormat.TEXTUAL)
 
 HttpClientpublic static HttpClient newConnection()
HttpClient. HttpClient.UriConfiguration.uri(String) or
 baseUrl(String) should be invoked after a verb
 request(HttpMethod) is selected.HttpClientpublic final HttpClient baseUrl(String baseUrl)
Note: Configured baseUrl only applies when used with HttpClient.UriConfiguration.uri(String)
 or HttpClient.UriConfiguration.uri(Mono).
baseUrl - a default base url that can be fully sufficient for request or can
 be used to prepend future HttpClient.UriConfiguration.uri(java.lang.String) calls.public final HttpClient compress(boolean compressionEnabled)
compressionEnabled - if true GZip compression is enabled otherwise disabled (default: false)HttpClientpublic final HttpClient cookie(Cookie cookie)
cookie - a cookie to append to the request(s)HttpClientpublic final HttpClient cookie(String name, Consumer<? super Cookie> cookieBuilder)
cookieBuilder - the header Consumer to invoke before requestingHttpClientpublic final HttpClient cookieCodec(ClientCookieEncoder encoder)
ClientCookieEncoder, ClientCookieDecoder will be
 chosen based on the encoder.encoder - the preferred ClientCookieEncoderHttpClientpublic final HttpClient cookieCodec(ClientCookieEncoder encoder, ClientCookieDecoder decoder)
ClientCookieEncoder and ClientCookieDecoder.encoder - the preferred ClientCookieEncoderdecoder - the preferred ClientCookieDecoderHttpClientpublic final HttpClient cookiesWhen(String name, Function<? super Cookie,Mono<? extends Cookie>> cookieBuilder)
cookieBuilder - the cookies Function to invoke before sendingHttpClientpublic final HttpClient.RequestSender delete()
HttpClient.HttpClient.RequestSender ready to prepare the content for responsepublic final HttpClient disableRetry(boolean disableRetry)
retry once support for the outgoing requests that fail with
 AbortedException.isConnectionReset(Throwable).
 By default this is set to false in which case retry once is enabled.
disableRetry - true to disable retry once, false to enable itHttpClientpublic final HttpClient doAfterRequest(BiConsumer<? super HttpClientRequest,? super Connection> doAfterRequest)
HttpClientRequest has been sent
 and HttpClientState.REQUEST_SENT has been emitted.doAfterRequest - a callback called when HttpClientRequest has been sentHttpClientpublic final HttpClient doAfterResponseSuccess(BiConsumer<? super HttpClientResponse,? super Connection> doAfterResponseSuccess)
HttpClientResponse has been fully received
 and HttpClientState.RESPONSE_COMPLETED has been emitted.doAfterResponseSuccess - a callback called after HttpClientResponse has been fully received
 and HttpClientState.RESPONSE_COMPLETED has been emitted.HttpClientpublic final HttpClient doOnError(BiConsumer<? super HttpClientRequest,? super Throwable> doOnRequestError, BiConsumer<? super HttpClientResponse,? super Throwable> doOnResponseError)
HttpClientRequest has not been sent and when HttpClientResponse has not been fully
 received.
 
 Note that some mutation of HttpClientRequest performed late in lifecycle
 doOnRequest(BiConsumer) or HttpClient.RequestSender.send(BiFunction) might
 not be visible if the error results from a connection failure.
doOnRequestError - a consumer observing request failuresdoOnResponseError - a consumer observing response failuresHttpClientpublic final HttpClient doOnRedirect(BiConsumer<? super HttpClientResponse,? super Connection> doOnRedirect)
HttpClientResponse headers have been
 received and the request is about to be redirected.
 Note: This callback applies only if auto-redirect is enabled, e.g. via
 followRedirect(boolean).
doOnRedirect - a callback called after HttpClientResponse headers have been received
 and the request is about to be redirectedHttpClientpublic final HttpClient doOnRequest(BiConsumer<? super HttpClientRequest,? super Connection> doOnRequest)
HttpClientRequest is about to be sent
 and HttpClientState.REQUEST_PREPARED has been emitted.doOnRequest - a callback called when HttpClientRequest is about to be sentHttpClientpublic final HttpClient doOnRequestError(BiConsumer<? super HttpClientRequest,? super Throwable> doOnRequestError)
HttpClientRequest has not been sent.
 Note that some mutation of HttpClientRequest performed late in lifecycle
 doOnRequest(BiConsumer) or HttpClient.RequestSender.send(BiFunction) might
 not be visible if the error results from a connection failure.doOnRequestError - a consumer observing request failuresHttpClientpublic final HttpClient doOnResponse(BiConsumer<? super HttpClientResponse,? super Connection> doOnResponse)
HttpClientResponse headers have been
 received and HttpClientState.RESPONSE_RECEIVED has been emitted.doOnResponse - a callback called after HttpClientResponse headers have been receivedHttpClientpublic final HttpClient doOnResponseError(BiConsumer<? super HttpClientResponse,? super Throwable> doOnResponseError)
HttpClientResponse has not been fully
 received, HttpClientState.RESPONSE_INCOMPLETE has been emitted.doOnResponseError - a consumer observing response failuresHttpClientpublic final HttpClient followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse> predicate)
Predicate matches.
 Note: The passed HttpClientRequest and HttpClientResponse
 should be considered read-only and the implement SHOULD NOT consume or
 write the request/response in this predicate.
 
Note: The sensitive headers followRedirect
 are removed from the initialized request when redirecting to a different domain, they can be re-added
 via followRedirect(BiPredicate, Consumer).
predicate - that returns true to enable auto-redirect support.HttpClientpublic final HttpClient followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse> predicate, @Nullable BiConsumer<HttpHeaders,HttpClientRequest> redirectRequestBiConsumer)
followRedirect(BiPredicate) that also accepts
 BiConsumer that provides the headers from the previous request and the current redirect request.
 Note: The sensitive headers:
BiConsumer.predicate - that returns true to enable auto-redirect support.redirectRequestBiConsumer - BiConsumer, invoked on redirects, after
 the redirect request has been initialized, in order to apply further changes such as
 add/remove headers and cookies; use HttpClientInfos.redirectedFrom() to
 check the original and any number of subsequent redirect(s), including the one that
 is in progress. The BiConsumer provides the headers from the previous request
 and the current redirect request.HttpClientpublic final HttpClient followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse> predicate, @Nullable Consumer<HttpClientRequest> redirectRequestConsumer)
followRedirect(BiPredicate) that also accepts a redirect request
 processor.
 Note: The sensitive headers:
redirectRequestConsumer.predicate - that returns true to enable auto-redirect support.redirectRequestConsumer - redirect request consumer, invoked on redirects, after
 the redirect request has been initialized, in order to apply further changes such as
 add/remove headers and cookies; use HttpClientInfos.redirectedFrom() to
 check the original and any number of subsequent redirect(s), including the one that
 is in progress.HttpClientpublic final HttpClient followRedirect(boolean followRedirect)
Note: The sensitive headers followRedirect
 are removed from the initialized request when redirecting to a different domain, they can be re-added
 via followRedirect(boolean, Consumer).
followRedirect - if true HTTP status 301|302|307|308 auto-redirect support
 is enabled, otherwise disabled (default: false).HttpClientpublic final HttpClient followRedirect(boolean followRedirect, @Nullable BiConsumer<HttpHeaders,HttpClientRequest> redirectRequestBiConsumer)
followRedirect(boolean) that also accepts
 BiConsumer that provides the headers from the previous request and the current redirect request.
 Note: The sensitive headers:
BiConsumer.followRedirect - if true HTTP status 301|302|307|308 auto-redirect support
                       is enabled, otherwise disabled (default: false).redirectRequestBiConsumer - BiConsumer, invoked on redirects, after
 the redirect request has been initialized, in order to apply further changes such as
 add/remove headers and cookies; use HttpClientInfos.redirectedFrom() to
 check the original and any number of subsequent redirect(s), including the one that
 is in progress. The BiConsumer provides the headers from the previous request
 and the current redirect request.HttpClientpublic final HttpClient followRedirect(boolean followRedirect, @Nullable Consumer<HttpClientRequest> redirectRequestConsumer)
followRedirect(boolean) that also accepts a redirect request
 processor.
 Note: The sensitive headers:
redirectRequestConsumer.followRedirect - if true HTTP status 301|302|307|308 auto-redirect support
 is enabled, otherwise disabled (default: false).redirectRequestConsumer - redirect request consumer, invoked on redirects, after
 the redirect request has been initialized, in order to apply further changes such as
 add/remove headers and cookies; use HttpClientInfos.redirectedFrom() to
 check the original and any number of subsequent redirect(s), including the one that
 is in progress.HttpClientpublic final HttpClient.ResponseReceiver<?> get()
HttpClient.HttpClient.RequestSender ready to consume for responsepublic final HttpClient.ResponseReceiver<?> head()
HttpClient.HttpClient.RequestSender ready to consume for responsepublic final HttpClient headers(Consumer<? super HttpHeaders> headerBuilder)
headerBuilder - the header Consumer to invoke before requestingHttpClientpublic final HttpClient headersWhen(Function<? super HttpHeaders,Mono<? extends HttpHeaders>> headerBuilder)
headerBuilder - the header Function to invoke before sendingHttpClientpublic final HttpClient http2Settings(Consumer<Http2SettingsSpec.Builder> http2Settings)
http2Settings - configures Http2SettingsSpec before requestingHttpClientpublic final HttpClient httpMessageLogFactory(HttpMessageLogFactory httpMessageLogFactory)
HttpMessage is about to be logged the configured factory will be used for
 generating a sanitized log message.
 
 Default to ReactorNettyHttpMessageLogFactory:
 
DecoderException message is presentedhttpMessageLogFactory - the factory for generating the log messageHttpClientpublic final HttpClient httpResponseDecoder(Function<HttpResponseDecoderSpec,HttpResponseDecoderSpec> responseDecoderOptions)
HttpClientCodec's response decoding options.responseDecoderOptions - a function to mutate the provided Http response decoder optionsHttpClientpublic final HttpClient keepAlive(boolean keepAlive)
keepAlive - true if keepAlive should be enabled (default: true)HttpClientpublic final HttpClient mapConnect(Function<? super Mono<? extends Connection>,? extends Mono<? extends Connection>> connector)
connector - A bi function mapping the default connection and configured
 bootstrap to a target connection.HttpClientpublic final HttpClient metrics(boolean enable, Function<String,String> uriTagValue)
globalRegistry
 under the name Metrics.HTTP_CLIENT_PREFIX.
 uriTagValue function receives the actual uri and returns the uri tag value
 that will be used for the metrics with Metrics.URI tag.
 For example instead of using the actual uri "/users/1" as uri tag value, templated uri
 "/users/{id}" can be used.
 
Note: It is strongly recommended to provide template-like form for the URIs. Without a conversion to a template-like form, each distinct URI leads to the creation of a distinct tag, which takes a lot of memory for the metrics.
Note: It is strongly recommended applications to configure an upper limit for the number of the URI tags. For example:
 Metrics.globalRegistry
        .config()
        .meterFilter(MeterFilter.maximumAllowableTags(HTTP_CLIENT_PREFIX, URI, 100, MeterFilter.deny()));
 
 By default metrics are not enabled.
enable - true enables metrics collection; false disables ituriTagValue - a function that receives the actual uri and returns the uri tag value
 that will be used for the metrics with Metrics.URI tagHttpClientpublic final HttpClient metrics(boolean enable, Supplier<? extends ChannelMetricsRecorder> recorder)
TransportTransport.
 All generated metrics are provided to the specified recorder
 which is only instantiated if metrics are being enabled (the instantiation is not lazy,
 but happens immediately, while configuring the Transport).metrics in class Transport<HttpClient,HttpClientConfig>enable - if true enables the metrics on the Transport.recorder - a supplier for the ChannelMetricsRecorderTransport referencepublic final HttpClient metrics(boolean enable, Supplier<? extends ChannelMetricsRecorder> recorder, Function<String,String> uriValue)
HttpClient.
 All generated metrics are provided to the specified recorder which is only
 instantiated if metrics are being enabled (the instantiation is not lazy,
 but happens immediately, while configuring the HttpClient).
 uriValue function receives the actual uri and returns the uri value
 that will be used when the metrics are propagated to the recorder.
 For example instead of using the actual uri "/users/1" as uri value, templated uri
 "/users/{id}" can be used.
enable - true enables metrics collection; false disables itrecorder - a supplier for the metrics recorder that receives the collected metricsuriValue - a function that receives the actual uri and returns the uri value
 that will be used when the metrics are propagated to the recorder.HttpClientpublic final HttpClient noSSL()
HttpClientpublic final HttpClient observe(ConnectionObserver observer)
TransportConnectionObserver to observe the connection state changes.observe in class Transport<HttpClient,HttpClientConfig>observer - the ConnectionObserver to be set or addTransport referencepublic final HttpClient.ResponseReceiver<?> options()
HttpClient.HttpClient.RequestSender ready to consume for responsepublic final HttpClient.RequestSender patch()
HttpClient.HttpClient.RequestSender ready to finalize request and consume for responsepublic final HttpClient port(int port)
ClientTransportport in class ClientTransport<HttpClient,HttpClientConfig>port - the port to connect toClientTransport referencepublic final HttpClient.RequestSender post()
HttpClient.HttpClient.RequestSender ready to finalize request and consume for responsepublic final HttpClient protocol(HttpProtocol... supportedProtocols)
HttpProtocol.HTTP11.supportedProtocols - The various HttpProtocol this client will supportHttpClientpublic final HttpClient.RequestSender put()
HttpClient.HttpClient.RequestSender ready to finalize request and consume for responsepublic final HttpClient remoteAddress(Supplier<? extends SocketAddress> remoteAddressSupplier)
ClientTransportremoteAddress in class ClientTransport<HttpClient,HttpClientConfig>remoteAddressSupplier - A supplier of the address to connect to.ClientTransportpublic HttpClient.RequestSender request(HttpMethod method)
HttpClient.method - the HTTP method to sendHttpClient.RequestSender ready to finalize request and consume for responsepublic final HttpClient responseTimeout(@Nullable Duration maxReadOperationInterval)
ReadTimeoutHandler is added to the channel
 pipeline after sending the request and is removed when the response is fully received.
 If the maxReadOperationInterval is null, any previous setting will be removed and no
 maxReadOperationInterval will be applied.
 If the maxReadOperationInterval is less than 1ms, then 1ms will be the
 maxReadOperationInterval.
 The maxReadOperationInterval setting on HttpClientRequest level overrides any
 maxReadOperationInterval setting on HttpClient level.maxReadOperationInterval - the maximum duration allowed between each network-level read operations
                                 (resolution: ms).HttpClientReadTimeoutHandlerpublic final HttpClient secure()
By default SslContext is initialized with:
 
10 seconds handshake timeout unless
     the environment property reactor.netty.tcp.sslHandshakeTimeout is setHttpClientpublic final HttpClient secure(Consumer<? super SslProvider.SslContextSpec> sslProviderBuilder)
The builder will produce the SslContext with:
 
10 seconds handshake timeout unless the passed builder sets another configuration or
     the environment property reactor.netty.tcp.sslHandshakeTimeout is setsslProviderBuilder - builder callback for further customization of SslContext.HttpClientpublic HttpClient secure(SslProvider sslProvider)
SslProvider.
 Note: Hostname verification is not enabled by default.
 If hostname verification is needed, please apply the
 HttpClientSecurityUtils.HOSTNAME_VERIFICATION_CONFIGURER
 configuration to the SslProvider:
 
 
 SslProvider.builder()
            .sslContext(...)
            .handlerConfigurator(HttpClientSecurityUtils.HOSTNAME_VERIFICATION_CONFIGURER)
            .build();
 
 
 sslProvider - The provider to set when configuring SSLHttpClient@Deprecated public final HttpClient tcpConfiguration(Function<? super TcpClient,? extends TcpClient> tcpMapper)
HttpClient to achieve the same configurations.
 This method will be removed in version 1.1.0.TcpClient mapping function to update TCP configuration and
 return an enriched HttpClient to use.
 
 Note:
 There isn't only one method that replaces this deprecated method.
 The configuration that can be done with this deprecated method,
 can also be done with the other methods exposed by HttpClient.
 
Examples:
Configuration via the deprecated '.tcpConfiguration(...)' method
 
 HttpClient.tcpConfiguration(tcpClient ->
     tcpClient.attr(...) // configures the channel attributes
              .bindAddress(...) // configures the bind (local) address
              .channelGroup(...) // configures the channel group
              .doOnChannelInit(...) // configures the channel handler
              .doOnConnected(...) // configures the doOnConnected callback
              .doOnDisconnected(...) // configures the doOnDisconnected callback
              .host(...) // configures the host name
              .metrics(...) // configures the metrics
              .noProxy() // removes proxy configuration
              .noSSL() // removes SSL configuration
              .observe() // configures the connection observer
              .option(...) // configures the channel options
              .port(...) // configures the port
              .proxy(...) // configures the proxy
              .remoteAddress(...) // configures the remote address
              .resolver(...) // configures the host names resolver
              .runOn(...) // configures the event loop group
              .secure() // configures the SSL
              .wiretap()) // configures the wire logging
 
 
 Configuration via the other methods exposed by HttpClient
 
 HttpClient.attr(...) // configures the channel attributes
           .bindAddress(...) // configures the bind (local) address
           .channelGroup(...) // configures the channel group
           .doOnChannelInit(...) // configures the channel handler
           .doOnConnected(...) // configures the doOnConnected callback
           .doOnDisconnected(...) // configures the doOnDisconnected callback
           .host(...) // configures the host name
           .metrics(...) // configures the metrics
           .noProxy() // removes proxy configuration
           .noSSL() // removes SSL configuration
           .observe() // configures the connection observer
           .option(...) // configures the channel options
           .port(...) // configures the port
           .proxy(...) // configures the proxy
           .remoteAddress(...) // configures the remote address
           .resolver(...) // configures the host names resolver
           .runOn(...) // configures the event loop group
           .secure() // configures the SSL
           .wiretap() // configures the wire logging
 
 
 Wire logging in plain text
 
 HttpClient.wiretap("logger", LogLevel.DEBUG, AdvancedByteBufFormat.TEXTUAL)
 
 tcpMapper - A TcpClient mapping function to update TCP configuration and
 return an enriched HttpClient to use.HttpClientpublic Mono<Void> warmup()
Mono that triggers:
 first request absorbs the extra time needed to load resources.warmup in class ClientTransport<HttpClient,HttpClientConfig>Mono representing the completion of the warmuppublic final HttpClient.WebsocketSender websocket()
HttpClient.HttpClient.WebsocketSender ready to consume for responsepublic final HttpClient.WebsocketSender websocket(WebsocketClientSpec websocketClientSpec)
HttpClient.websocketClientSpec - WebsocketClientSpec for websocket configurationHttpClient.WebsocketSender ready to consume for responsepublic final HttpClient wiretap(boolean enable)
TransportTransport category (logger),
 DEBUG logger level and AdvancedByteBufFormat.HEX_DUMP for ByteBuf format,
 which means both events and content will be logged and the content will be in hex format.wiretap in class Transport<HttpClient,HttpClientConfig>enable - specifies whether the wire logger configuration will be added to the pipelineTransport reference