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 toPublisher
viaReactiveAdapterRegistry
.WebClient.RequestHeadersSpec<?>
body(Object producer, ParameterizedTypeReference<?> elementTypeRef)
Variant ofbody(Publisher, ParameterizedTypeReference)
that allows using any producer that can be resolved toPublisher
viaReactiveAdapterRegistry
.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.RequestBodySpec
contentLength(long contentLength)
Set the length of the body in bytes, as specified by theContent-Length
header.WebClient.RequestBodySpec
contentType(MediaType contentType)
Set the media type of the body, as specified by theContent-Type
header.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-Length
header.- 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-Type
header.- 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
MultiValueMap
prepared withMultipartBodyBuilder
.- Parameters:
body
- the value to write to the request body- Returns:
- this builder
- Throws:
IllegalArgumentException
- ifbody
is aPublisher
or 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
- thePublisher
to 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
- thePublisher
to 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 toPublisher
viaReactiveAdapterRegistry
.- 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 toPublisher
viaReactiveAdapterRegistry
.- 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. SeeBodyInserters
for built-inBodyInserter
implementations.- 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)
.