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 ResponseExtractorsClientWebRequestBuilders,
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
HttpMessageReaders to use for decoding the HTTP
response body. |
void |
setMessageWriters(List<HttpMessageWriter<?>> messageWrters)
Set the list of
HttpMessageWriters 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:
ByteBufferEncoder / ByteBufferDecoderCharSequenceEncoder / StringDecoderJaxb2XmlEncoder / Jaxb2XmlDecoderJackson2JsonEncoder / Jackson2JsonDecoderclientHttpConnector - the ClientHttpRequestFactory to useprotected final void addDefaultHttpMessageReaders(List<HttpMessageReader<?>> messageReaders)
protected final void addDefaultHttpMessageWriters(List<HttpMessageWriter<?>> messageWriters)
public void setMessageReaders(List<HttpMessageReader<?>> messageReaders)
HttpMessageReaders to use for decoding the HTTP
response body.public void setMessageWriters(List<HttpMessageWriter<?>> messageWrters)
HttpMessageWriters 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:
ClientWebRequestBuilderHttpMessageWriters