anchor.diff:  			.awaitBody<Person>()
   ----
   
  -You can also get a stream of objects decoded from the response, as the following example shows:
  +To get a stream of decoded objects:
   
   [source,java,indent=0,subs="verbatim,quotes",role="primary"]
   .Java
  
positive.code: * `exchangeStrategies`: HTTP message reader/writer customizations.
  * `clientConnector`: HTTP client library settings.
  
  The following example configures <<web-reactive.adoc#webflux-codecs, HTTP codecs>>:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  ----
  	WebClient client = WebClient.builder()
  			.exchangeStrategies(builder -> {
  					return builder.codecs(codecConfigurer -> {
  						//...
  					});
  			})
  			.build();
  ----
  [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
  .Kotlin
  ----
  	val webClient = WebClient.builder()
  			.exchangeStrategies { strategies ->
  				strategies.codecs {
  					//...
  				}
  			}
  			.build()
  ----
  
  Once built, a `WebClient` instance is immutable. However, you can clone it and build a
  modified copy without affecting the original instance, as the following example shows:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  
negative.code: 			.awaitBody<Person>()
  ----
  
  
  
  
  [[webflux-client-exchange]]
  == `exchangeToMono()`
  
  The `exchangeToMono()` and `exchangeToFlux()` methods are useful for more advanced
  cases that require more control, such as to decode the response differently
  depending on the response status:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  ----
  	Mono<Object> entityMono = client.get()
  		   .uri("/persons/1")
  		   .accept(MediaType.APPLICATION_JSON)
  		   .exchangeToMono(response -> {
  			   if (response.statusCode().equals(HttpStatus.OK)) {
  				   return response.bodyToMono(Person.class);
  			   }
  			   else if (response.statusCode().is4xxClientError()) {
  				   return response.bodyToMono(ErrorContainer.class);
  			   }
  			   else {
  				   return Mono.error(response.createException());
  			   }
  		   });
  ----
  [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
  .Kotlin
  ----
  ----
  
  When using the above, after the returned `Mono` or `Flux` completes, the response body
  is checked and if not consumed it is released to prevent memory and connection leaks.
  Therefore the response cannot be decoded further downstream. It is up to the provided
  function to declare how to decode the response if needed.
  
  
  
  
  