org.springframework.web.reactive.function.client

## Interface WebClient

    public interface WebClient

Non-blocking, reactive client to perform HTTP requests, exposing a fluent, reactive API over underlying HTTP client libraries such as Reactor Netty.

Use static factory methods `create()` or `create(String)`, or `builder()` to prepare an instance.

For examples with a response body see:

- `retrieve()`
- `exchange()`

For examples with a request body see:

- `bodyValue(Object)`
- `body(Publisher,Class)`

Since:
  5.0
Author:
  Rossen Stoyanchev, Arjen Poutsma, Sebastien Deleuze, Brian Clozel

### Nested Class Summary

Nested Classes
`static interface` `WebClient.Builder` A mutable builder for creating a `WebClient`.
`static interface` `WebClient.RequestBodySpec` Contract for specifying request headers and body leading up to the exchange.
`static interface` `WebClient.RequestBodyUriSpec` Contract for specifying request headers, body and URI for a request.
`static interface` `WebClient.RequestHeadersSpec<S extends WebClient.RequestHeadersSpec<S>>` Contract for specifying request headers leading up to the exchange.
`static interface` `WebClient.RequestHeadersUriSpec<S extends WebClient.RequestHeadersSpec<S>>` Contract for specifying request headers and URI for a request.
`static interface` `WebClient.ResponseSpec` Contract for specifying response operations following the exchange.
`static interface` `WebClient.UriSpec<S extends WebClient.RequestHeadersSpec<?>>` Contract for specifying the URI for a request.

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Default Methods
`static WebClient.Builder` `builder()` Obtain a `WebClient` builder.
`static WebClient` `create()` Create a new `WebClient` with Reactor Netty by default.
`static WebClient` `create(String baseUrl)` Variant of `create()` that accepts a default base URL.
`WebClient.RequestHeadersUriSpec<?>` `delete()` Start building an HTTP DELETE request.
`WebClient.RequestHeadersUriSpec<?>` `get()` Start building an HTTP GET request.
`WebClient.RequestHeadersUriSpec<?>` `head()` Start building an HTTP HEAD request.
`WebClient.RequestBodyUriSpec` `method(org.springframework.http.HttpMethod method)` Start building a request for the given `HttpMethod`.
`WebClient.Builder` `mutate()` Return a builder to create a new `WebClient` whose settings are replicated from the current `WebClient`.
`WebClient.RequestHeadersUriSpec<?>` `options()` Start building an HTTP OPTIONS request.
`WebClient.RequestBodyUriSpec` `patch()` Start building an HTTP PATCH request.
`WebClient.RequestBodyUriSpec` `post()` Start building an HTTP POST request.
`WebClient.RequestBodyUriSpec` `put()` Start building an HTTP PUT request.

### Method Detail

#### get

    WebClient.RequestHeadersUriSpec<?> get()

Start building an HTTP GET request.

Returns:
  a spec for specifying the target URL

#### head

    WebClient.RequestHeadersUriSpec<?> head()

Start building an HTTP HEAD request.

Returns:
  a spec for specifying the target URL

#### post

    WebClient.RequestBodyUriSpec post()

Start building an HTTP POST request.

Returns:
  a spec for specifying the target URL

#### put

    WebClient.RequestBodyUriSpec put()

Start building an HTTP PUT request.

Returns:
  a spec for specifying the target URL

#### patch

    WebClient.RequestBodyUriSpec patch()

Start building an HTTP PATCH request.

Returns:
  a spec for specifying the target URL

#### delete

    WebClient.RequestHeadersUriSpec<?> delete()

Start building an HTTP DELETE request.

Returns:
  a spec for specifying the target URL

#### options

    WebClient.RequestHeadersUriSpec<?> options()

Start building an HTTP OPTIONS request.

Returns:
  a spec for specifying the target URL

#### method

    WebClient.RequestBodyUriSpec method(org.springframework.http.HttpMethod method)

Start building a request for the given `HttpMethod`.

Returns:
  a spec for specifying the target URL

#### mutate

    WebClient.Builder mutate()

Return a builder to create a new `WebClient` whose settings are replicated from the current `WebClient`.

#### create

    static WebClient create()

Create a new `WebClient` with Reactor Netty by default.

See Also:
  `create(String)`, `builder()`

#### create

    static WebClient create(String baseUrl)

Variant of `create()` that accepts a default base URL. For more details see `Builder.baseUrl(String)`.

Parameters:
  `baseUrl` - the base URI for all requests
See Also:
  `builder()`

#### builder

    static WebClient.Builder builder()

Obtain a `WebClient` builder.