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
Modifier and TypeMethodDescriptionVariant ofbody(Publisher, Class)
that allows using any producer that can be resolved toPublisher
viaReactiveAdapterRegistry
.body
(Object producer, ParameterizedTypeReference<?> elementTypeRef) Variant ofbody(Publisher, ParameterizedTypeReference)
that allows using any producer that can be resolved toPublisher
viaReactiveAdapterRegistry
.body
(BodyInserter<?, ? super ClientHttpRequest> inserter) Set the body of the request using the given body inserter.<T,
P extends Publisher<T>>
WebClient.RequestHeadersSpec<?>Shortcut forbody(BodyInserter)
with a Publisher inserter.<T,
P extends Publisher<T>>
WebClient.RequestHeadersSpec<?>body
(P publisher, ParameterizedTypeReference<T> elementTypeRef) Variant ofbody(Publisher, Class)
that allows providing element type information with generics.Shortcut forbody(BodyInserter)
with a value inserter.<T> WebClient.RequestHeadersSpec<?>
bodyValue
(T body, ParameterizedTypeReference<T> bodyType) Shortcut forbody(BodyInserter)
with a value inserter.contentLength
(long contentLength) Set the length of the body in bytes, as specified by theContent-Length
header.contentType
(MediaType contentType) Set the media type of the body, as specified by theContent-Type
header.Deprecated.Methods inherited from interface org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec
accept, acceptCharset, attribute, attributes, context, cookie, cookies, exchange, exchangeToFlux, exchangeToMono, header, headers, httpRequest, ifModifiedSince, ifNoneMatch, retrieve
-
Method Details
-
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:
-
contentType
Set the media type of the body, as specified by theContent-Type
header.- Parameters:
contentType
- the content type- Returns:
- this builder
- See Also:
-
bodyValue
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
- See Also:
-
bodyValue
Shortcut forbody(BodyInserter)
with a value inserter. For example:List<Person> list = ... ; Mono<Void> result = client.post() .uri("/persons/{id}", id) .contentType(MediaType.APPLICATION_JSON) .bodyValue(list, new ParameterizedTypeReference<List<Person>>() {};) .retrieve() .bodyToMono(Void.class);
For multipart requests consider providing
MultiValueMap
prepared withMultipartBodyBuilder
.- Type Parameters:
T
- the type of the body- Parameters:
body
- the value to write to the request bodybodyType
- the type of the body, used to capture the generic type- Returns:
- this builder
- Throws:
IllegalArgumentException
- ifbody
is aPublisher
or producer known toReactiveAdapterRegistry
- Since:
- 6.2
-
body
<T,P extends 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 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
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
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
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:
-
syncBody
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)
.
-
bodyValue(Object)