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 Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description WebClient.RequestHeadersSpec<?>body(Object producer, Class<?> elementClass)Variant ofbody(Publisher, Class)that allows using any producer that can be resolved toPublisherviaReactiveAdapterRegistry.WebClient.RequestHeadersSpec<?>body(Object producer, ParameterizedTypeReference<?> elementTypeRef)Variant ofbody(Publisher, ParameterizedTypeReference)that allows using any producer that can be resolved toPublisherviaReactiveAdapterRegistry.WebClient.RequestHeadersSpec<?>body(BodyInserter<?,? super ClientHttpRequest> inserter)Set the body of the request using the given body inserter.<T,P extends org.reactivestreams.Publisher<T>>
WebClient.RequestHeadersSpec<?>body(P publisher, Class<T> elementClass)Shortcut forbody(BodyInserter)with a Publisher inserter.<T,P extends org.reactivestreams.Publisher<T>>
WebClient.RequestHeadersSpec<?>body(P publisher, ParameterizedTypeReference<T> elementTypeRef)Variant ofbody(Publisher, Class)that allows providing element type information with generics.WebClient.RequestHeadersSpec<?>bodyValue(Object body)Shortcut forbody(BodyInserter)with a value inserter.WebClient.RequestBodySpeccontentLength(long contentLength)Set the length of the body in bytes, as specified by theContent-Lengthheader.WebClient.RequestBodySpeccontentType(MediaType contentType)Set the media type of the body, as specified by theContent-Typeheader.WebClient.RequestHeadersSpec<?>syncBody(Object body)Deprecated.as of Spring Framework 5.2 in favor ofbodyValue(Object)Methods inherited from interface org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec
accept, acceptCharset, attribute, attributes, cookie, cookies, exchange, header, headers, ifModifiedSince, ifNoneMatch, retrieve
Method Detail
contentLength
WebClient.RequestBodySpec contentLength(long contentLength)
Set the length of the body in bytes, as specified by theContent-Lengthheader.- Parameters:
contentLength- the content length- Returns:
- this builder
- See Also:
HttpHeaders.setContentLength(long)
contentType
WebClient.RequestBodySpec contentType(MediaType contentType)
Set the media type of the body, as specified by theContent-Typeheader.- Parameters:
contentType- the content type- Returns:
- this builder
- See Also:
HttpHeaders.setContentType(MediaType)
bodyValue
WebClient.RequestHeadersSpec<?> bodyValue(Object body)
Shortcut forbody(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
MultiValueMapprepared withMultipartBodyBuilder.- Parameters:
body- the value to write to the request body- Returns:
- this builder
- Throws:
IllegalArgumentException- ifbodyis aPublisheror producer known toReactiveAdapterRegistry- Since:
- 5.2
body
<T,P extends org.reactivestreams.Publisher<T>> WebClient.RequestHeadersSpec<?> body(P publisher, Class<T> elementClass)
Shortcut forbody(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 publisherP- the type of thePublisher- Parameters:
publisher- thePublisherto write to the requestelementClass- the type of elements published- Returns:
- this builder
body
<T,P extends org.reactivestreams.Publisher<T>> WebClient.RequestHeadersSpec<?> body(P publisher, ParameterizedTypeReference<T> elementTypeRef)
Variant ofbody(Publisher, Class)that allows providing element type information with generics.- Type Parameters:
T- the type of the elements contained in the publisherP- the type of thePublisher- Parameters:
publisher- thePublisherto write to the requestelementTypeRef- the type of elements published- Returns:
- this builder
body
WebClient.RequestHeadersSpec<?> body(Object producer, Class<?> elementClass)
Variant ofbody(Publisher, Class)that allows using any producer that can be resolved toPublisherviaReactiveAdapterRegistry.- Parameters:
producer- the producer to write to the requestelementClass- the type of elements produced- Returns:
- this builder
- Since:
- 5.2
body
WebClient.RequestHeadersSpec<?> body(Object producer, ParameterizedTypeReference<?> elementTypeRef)
Variant ofbody(Publisher, ParameterizedTypeReference)that allows using any producer that can be resolved toPublisherviaReactiveAdapterRegistry.- Parameters:
producer- the producer to write to the requestelementTypeRef- the type of elements produced- Returns:
- this builder
- Since:
- 5.2
body
WebClient.RequestHeadersSpec<?> body(BodyInserter<?,? super ClientHttpRequest> inserter)
Set the body of the request using the given body inserter. SeeBodyInsertersfor built-inBodyInserterimplementations.- Parameters:
inserter- the body inserter to use for the request body- Returns:
- this builder
- See Also:
BodyInserters
syncBody
@Deprecated WebClient.RequestHeadersSpec<?> syncBody(Object body)
Deprecated.as of Spring Framework 5.2 in favor ofbodyValue(Object)Shortcut forbody(BodyInserter)with a value inserter. As of 5.2 this method delegates tobodyValue(Object).