public final class WebClient extends Object
Here is a simple example of a GET request:
static imports: ClientWebRequestBuilder.*, ResponseExtractors.* // should be shared between HTTP calls WebClient client = new WebClient(new ReactorClientHttpConnector()); Mono<String> result = client .perform(get("http://example.org/resource").accept(MediaType.TEXT_PLAIN)) .extract(body(String.class));
This Web client relies on the following:
ClientHttpConnector
implementation to drive the underlying
library (e.g. Reactor-Netty)ClientWebRequestBuilder
to create a Web request with a builder
API (see ClientWebRequestBuilders
)ResponseExtractor
to extract the relevant part of the server
response with the composition API of choice (see ResponseExtractors
ClientWebRequestBuilders
,
ResponseExtractors
Modifier and Type | Class and Description |
---|---|
protected class |
WebClient.DefaultClientHttpRequestInterceptionChain |
protected class |
WebClient.DefaultRequestCallback |
protected class |
WebClient.DefaultWebClientConfig |
Constructor and Description |
---|
WebClient(ClientHttpConnector clientHttpConnector)
Create a
WebClient instance, using the ClientHttpConnector
implementation given as an argument to drive the underlying
implementation. |
Modifier and Type | Method and Description |
---|---|
protected void |
addDefaultHttpMessageReaders(List<HttpMessageReader<?>> messageReaders)
Add default HTTP message readers.
|
protected void |
addDefaultHttpMessageWriters(List<HttpMessageWriter<?>> messageWriters)
Add default HTTP message writers.
|
WebResponseActions |
perform(ClientWebRequestBuilder builder)
Perform the actual HTTP request/response exchange
|
void |
setInterceptors(List<ClientHttpRequestInterceptor> interceptors)
Set the list of
ClientHttpRequestInterceptor to use
for intercepting client HTTP requests |
void |
setMessageReaders(List<HttpMessageReader<?>> messageReaders)
Set the list of
HttpMessageReader s to use for decoding the HTTP
response body. |
void |
setMessageWriters(List<HttpMessageWriter<?>> messageWrters)
Set the list of
HttpMessageWriter s to use for encoding the HTTP
request body. |
void |
setResponseErrorHandler(ResponseErrorHandler responseErrorHandler)
Set the
ResponseErrorHandler to use for handling HTTP response errors |
public WebClient(ClientHttpConnector clientHttpConnector)
WebClient
instance, using the ClientHttpConnector
implementation given as an argument to drive the underlying
implementation.
Register by default the following Encoders and Decoders:
clientHttpConnector
- the ClientHttpRequestFactory
to useprotected final void addDefaultHttpMessageReaders(List<HttpMessageReader<?>> messageReaders)
protected final void addDefaultHttpMessageWriters(List<HttpMessageWriter<?>> messageWriters)
public void setMessageReaders(List<HttpMessageReader<?>> messageReaders)
HttpMessageReader
s to use for decoding the HTTP
response body.public void setMessageWriters(List<HttpMessageWriter<?>> messageWrters)
HttpMessageWriter
s to use for encoding the HTTP
request body.public void setResponseErrorHandler(ResponseErrorHandler responseErrorHandler)
ResponseErrorHandler
to use for handling HTTP response errorspublic void setInterceptors(List<ClientHttpRequestInterceptor> interceptors)
ClientHttpRequestInterceptor
to use
for intercepting client HTTP requestspublic WebResponseActions perform(ClientWebRequestBuilder builder)
Requesting from the exposed Flux
will result in:
ClientWebRequestBuilder
HttpMessageWriter
s