anchor.diff:  * `WebClient.create()`
   * `WebClient.create(String baseUrl)`
   
  -The above methods use the Reactor Netty `HttpClient` with default settings and expect
  -`io.projectreactor.netty:reactor-netty` to be on the classpath.
  -
   You can also use `WebClient.builder()` with further options:
   
   * `uriBuilderFactory`: Customized `UriBuilderFactory` to use as a base URL.
  +* `defaultUriVariables`: default values to use when expanding URI templates.
   * `defaultHeader`: Headers for every request.
   * `defaultCookie`: Cookies for every request.
   * `defaultRequest`: `Consumer` to customize every request.
  
positive.code: [[webflux-client]]
  = WebClient
  
  Spring WebFlux includes a reactive, non-blocking `WebClient` for HTTP requests. The client
  has a functional, fluent API with reactive types for declarative composition, see
  <<web-reactive.adoc#webflux-reactive-libraries>>. WebFlux client and server rely on the
  same non-blocking <<web-reactive.adoc#webflux-codecs, codecs>> to encode and decode request
  and response content.
  
  Internally `WebClient` delegates to an HTTP client library. By default, it uses
  https://github.com/reactor/reactor-netty[Reactor Netty], there is built-in support for
  the Jetty https://github.com/jetty-project/jetty-reactive-httpclient[reactive HttpClient],
  and others can be plugged in through a `ClientHttpConnector`.
  
  
  
  
negative.code: [[webflux-client-retrieve]]
  == `retrieve()`
  
  The `retrieve()` method can be used to declare how to extract the response. For example:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  ----
  	WebClient client = WebClient.create("https://example.org");
  
  	Mono<ResponseEntity<Person>> result = client.get()
  			.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
  			.retrieve()
  			.toEntity(Person.class);
  ----
  [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
  .Kotlin
  ----
  	val client = WebClient.create("https://example.org")
  
  	val result = client.get()
  			.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
  			.retrieve()
  			.toEntity<Person>().awaitSingle()
  ----
  
  Or to get only the body:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  