Interface WebClient.RequestBodySpec

All Superinterfaces:
WebClient.RequestHeadersSpec<WebClient.RequestBodySpec>
All Known Subinterfaces:
WebClient.RequestBodyUriSpec
Enclosing interface:
WebClient

public static interface WebClient.RequestBodySpec extends WebClient.RequestHeadersSpec<WebClient.RequestBodySpec>
Contract for specifying request headers and body leading up to the exchange.
  • Method Details

    • contentLength

      WebClient.RequestBodySpec contentLength(long contentLength)
      Set the length of the body in bytes, as specified by the Content-Length header.
      Parameters:
      contentLength - the content length
      Returns:
      this builder
      See Also:
      • HttpHeaders.setContentLength(long)
    • contentType

      WebClient.RequestBodySpec contentType(org.springframework.http.MediaType contentType)
      Set the media type of the body, as specified by the Content-Type header.
      Parameters:
      contentType - the content type
      Returns:
      this builder
      See Also:
      • HttpHeaders.setContentType(MediaType)
    • bodyValue

      Shortcut for body(BodyInserter) with a value inserter. For example:

       Person person = ... ;
      
       Mono<Void> result = client.post()
           .uri("/persons/{id}", id)
           .contentType(MediaType.APPLICATION_JSON)
           .bodyValue(person)
           .retrieve()
           .bodyToMono(Void.class);
       

      For multipart requests consider providing MultiValueMap prepared with MultipartBodyBuilder.

      Parameters:
      body - the value to write to the request body
      Returns:
      this builder
      Throws:
      IllegalArgumentException - if body is a Publisher or producer known to ReactiveAdapterRegistry
      Since:
      5.2
    • body

      <T, P extends Publisher<T>> WebClient.RequestHeadersSpec<?> body(P publisher, Class<T> elementClass)
      Shortcut for body(BodyInserter) with a Publisher inserter. For example:

       Mono<Person> personMono = ... ;
      
       Mono<Void> result = client.post()
           .uri("/persons/{id}", id)
           .contentType(MediaType.APPLICATION_JSON)
           .body(personMono, Person.class)
           .retrieve()
           .bodyToMono(Void.class);
       
      Type Parameters:
      T - the type of the elements contained in the publisher
      P - the type of the Publisher
      Parameters:
      publisher - the Publisher to write to the request
      elementClass - the type of elements published
      Returns:
      this builder
    • body

      <T, P extends Publisher<T>> WebClient.RequestHeadersSpec<?> body(P publisher, org.springframework.core.ParameterizedTypeReference<T> elementTypeRef)
      Variant of body(Publisher, Class) that allows providing element type information with generics.
      Type Parameters:
      T - the type of the elements contained in the publisher
      P - the type of the Publisher
      Parameters:
      publisher - the Publisher to write to the request
      elementTypeRef - the type of elements published
      Returns:
      this builder
    • body

      WebClient.RequestHeadersSpec<?> body(Object producer, Class<?> elementClass)
      Variant of body(Publisher, Class) that allows using any producer that can be resolved to Publisher via ReactiveAdapterRegistry.
      Parameters:
      producer - the producer to write to the request
      elementClass - the type of elements produced
      Returns:
      this builder
      Since:
      5.2
    • body

      WebClient.RequestHeadersSpec<?> body(Object producer, org.springframework.core.ParameterizedTypeReference<?> elementTypeRef)
      Variant of body(Publisher, ParameterizedTypeReference) that allows using any producer that can be resolved to Publisher via ReactiveAdapterRegistry.
      Parameters:
      producer - the producer to write to the request
      elementTypeRef - the type of elements produced
      Returns:
      this builder
      Since:
      5.2
    • body

      WebClient.RequestHeadersSpec<?> body(BodyInserter<?,? super org.springframework.http.client.reactive.ClientHttpRequest> inserter)
      Set the body of the request using the given body inserter. See BodyInserters for built-in BodyInserter implementations.
      Parameters:
      inserter - the body inserter to use for the request body
      Returns:
      this builder
      See Also:
    • syncBody

      Deprecated.
      as of Spring Framework 5.2 in favor of bodyValue(Object)
      Shortcut for body(BodyInserter) with a value inserter. As of 5.2 this method delegates to bodyValue(Object).