public abstract class BodyInserters extends Object
BodyInserter implementations.| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
BodyInserters.FormInserter<T>
Extension of  
BodyInserter that allows for adding form data or
 multipart form data. | 
static interface  | 
BodyInserters.MultipartInserter
Extension of  
BodyInserters.FormInserter that allows for adding asynchronous parts. | 
| Constructor and Description | 
|---|
BodyInserters()  | 
| Modifier and Type | Method and Description | 
|---|---|
static <T> BodyInserter<T,ReactiveHttpOutputMessage> | 
empty()
Inserter that does not write. 
 | 
static <T extends Publisher<DataBuffer>> | 
fromDataBuffers(T publisher)
Inserter to write the given  
Publisher<DataBuffer> to the body. | 
static BodyInserters.FormInserter<String> | 
fromFormData(MultiValueMap<String,String> formData)
Return a  
BodyInserters.FormInserter to write the given MultiValueMap
 as URL-encoded form data. | 
static BodyInserters.FormInserter<String> | 
fromFormData(String name,
            String value)
Return a  
BodyInserters.FormInserter to write the given key-value pair as
 URL-encoded form data. | 
static <T,P extends Publisher<T>> | 
fromMultipartAsyncData(String name,
                      P publisher,
                      Class<T> elementClass)
Return a  
BodyInserters.MultipartInserter to write the given asynchronous parts,
 as multipart data. | 
static <T,P extends Publisher<T>> | 
fromMultipartAsyncData(String name,
                      P publisher,
                      ParameterizedTypeReference<T> typeReference)
Variant of  
fromMultipartAsyncData(String, Publisher, Class) that
 accepts a ParameterizedTypeReference for the element type, which
 allows specifying generic type information. | 
static BodyInserters.MultipartInserter | 
fromMultipartData(MultiValueMap<String,?> multipartData)
Return a  
BodyInserters.MultipartInserter to write the given
 MultiValueMap as multipart data. | 
static BodyInserters.MultipartInserter | 
fromMultipartData(String name,
                 Object value)
Return a  
BodyInserters.MultipartInserter to write the given parts,
 as multipart data. | 
static <T> BodyInserter<T,ReactiveHttpOutputMessage> | 
fromObject(T body)
Deprecated. 
 
As of Spring Framework 5.2, in favor of  
fromValue(Object) | 
static <T> BodyInserter<T,ReactiveHttpOutputMessage> | 
fromProducer(T producer,
            Class<?> elementClass)
Inserter to write the given producer of value(s) which must be a  
Publisher
 or another producer adaptable to a Publisher via
 ReactiveAdapterRegistry. | 
static <T> BodyInserter<T,ReactiveHttpOutputMessage> | 
fromProducer(T producer,
            ParameterizedTypeReference<?> elementTypeRef)
Inserter to write the given producer of value(s) which must be a  
Publisher
 or another producer adaptable to a Publisher via
 ReactiveAdapterRegistry. | 
static <T,P extends Publisher<T>> | 
fromPublisher(P publisher,
             Class<T> elementClass)
Inserter to write the given  
Publisher. | 
static <T,P extends Publisher<T>> | 
fromPublisher(P publisher,
             ParameterizedTypeReference<T> elementTypeRef)
Inserter to write the given  
Publisher. | 
static <T extends Resource> | 
fromResource(T resource)
Inserter to write the given  
Resource. | 
static <T,S extends Publisher<ServerSentEvent<T>>> | 
fromServerSentEvents(S eventsPublisher)
Inserter to write the given  
ServerSentEvent publisher. | 
static <T> BodyInserter<T,ReactiveHttpOutputMessage> | 
fromValue(T body)
Inserter to write the given value. 
 | 
public static <T> BodyInserter<T,ReactiveHttpOutputMessage> empty()
public static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromValue(T body)
Alternatively, consider using the bodyValue(Object) shortcuts on
 WebClient and
 ServerResponse.
T - the type of the bodybody - the value to writeIllegalArgumentException - if body is a Publisher or an
 instance of a type supported by ReactiveAdapterRegistry.getSharedInstance(),
 for which fromPublisher(Publisher, Class) or
 fromProducer(Object, Class) should be used.fromPublisher(Publisher, Class), 
fromProducer(Object, Class)@Deprecated public static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromObject(T body)
fromValue(Object)Alternatively, consider using the bodyValue(Object) shortcuts on
 WebClient and
 ServerResponse.
T - the type of the bodybody - the body to write to the responseIllegalArgumentException - if body is a Publisher or an
 instance of a type supported by ReactiveAdapterRegistry.getSharedInstance(),
 for which fromPublisher(Publisher, Class) or
 fromProducer(Object, Class) should be used.fromPublisher(Publisher, Class), 
fromProducer(Object, Class)public static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromProducer(T producer, Class<?> elementClass)
Publisher
 or another producer adaptable to a Publisher via
 ReactiveAdapterRegistry.
 Alternatively, consider using the body shortcuts on
 WebClient and
 ServerResponse.
T - the type of the bodyproducer - the source of body value(s).elementClass - the class of values to be producedpublic static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromProducer(T producer, ParameterizedTypeReference<?> elementTypeRef)
Publisher
 or another producer adaptable to a Publisher via
 ReactiveAdapterRegistry.
 Alternatively, consider using the body shortcuts on
 WebClient and
 ServerResponse.
T - the type of the bodyproducer - the source of body value(s).elementTypeRef - the type of values to be producedpublic static <T,P extends Publisher<T>> BodyInserter<P,ReactiveHttpOutputMessage> fromPublisher(P publisher, Class<T> elementClass)
Publisher.
 Alternatively, consider using the body shortcuts on
 WebClient and
 ServerResponse.
T - the type of the elements contained in the publisherP - the Publisher typepublisher - the publisher to write withelementClass - the class of elements in the publisherPublisherpublic static <T,P extends Publisher<T>> BodyInserter<P,ReactiveHttpOutputMessage> fromPublisher(P publisher, ParameterizedTypeReference<T> elementTypeRef)
Publisher.
 Alternatively, consider using the body shortcuts on
 WebClient and
 ServerResponse.
T - the type of the elements contained in the publisherP - the Publisher typepublisher - the publisher to write withelementTypeRef - the type of elements contained in the publisherPublisherpublic static <T extends Resource> BodyInserter<T,ReactiveHttpOutputMessage> fromResource(T resource)
Resource.
 If the resource can be resolved to a file, it will be copied using zero-copy.
T - the type of the Resourceresource - the resource to write to the output messagePublisherpublic static <T,S extends Publisher<ServerSentEvent<T>>> BodyInserter<S,ServerHttpResponse> fromServerSentEvents(S eventsPublisher)
ServerSentEvent publisher.
 Alternatively, you can provide event data objects via
 fromPublisher(Publisher, Class) or fromProducer(Object, Class),
 and set the "Content-Type" to text/event-stream.
T - the type of the data elements in the ServerSentEventeventsPublisher - the ServerSentEvent publisher to write to the response bodyServerSentEvent publisherpublic static BodyInserters.FormInserter<String> fromFormData(MultiValueMap<String,String> formData)
BodyInserters.FormInserter to write the given MultiValueMap
 as URL-encoded form data. The returned inserter allows for additional
 entries to be added via BodyInserters.FormInserter.with(String, Object).
 Note that you can also use the bodyValue(Object) method in the
 request builders of both the WebClient and WebTestClient.
 In that case the setting of the request content type is also not required,
 just be sure the map contains String values only or otherwise it would be
 interpreted as a multipart request.
formData - the form data to write to the output messagepublic static BodyInserters.FormInserter<String> fromFormData(String name, String value)
BodyInserters.FormInserter to write the given key-value pair as
 URL-encoded form data. The returned inserter allows for additional
 entries to be added via BodyInserters.FormInserter.with(String, Object).name - the key to add to the formvalue - the value to add to the formpublic static BodyInserters.MultipartInserter fromMultipartData(MultiValueMap<String,?> multipartData)
BodyInserters.MultipartInserter to write the given
 MultiValueMap as multipart data. Values in the map can be an
 Object or an HttpEntity.
 Note that you can also build the multipart data externally with
 MultipartBodyBuilder, and pass the resulting map directly to the
 bodyValue(Object) shortcut method in WebClient.
multipartData - the form data to write to the output messageMultipartBodyBuilderpublic static BodyInserters.MultipartInserter fromMultipartData(String name, Object value)
BodyInserters.MultipartInserter to write the given parts,
 as multipart data. Values in the map can be an Object or an
 HttpEntity.
 Note that you can also build the multipart data externally with
 MultipartBodyBuilder, and pass the resulting map directly to the
 bodyValue(Object) shortcut method in WebClient.
name - the part namevalue - the part value, an Object or HttpEntitypublic static <T,P extends Publisher<T>> BodyInserters.MultipartInserter fromMultipartAsyncData(String name, P publisher, Class<T> elementClass)
BodyInserters.MultipartInserter to write the given asynchronous parts,
 as multipart data.
 Note that you can also build the multipart data externally with
 MultipartBodyBuilder, and pass the resulting map directly to the
 bodyValue(Object) shortcut method in WebClient.
name - the part namepublisher - the publisher that forms the part valueelementClass - the class contained in the publisherpublic static <T,P extends Publisher<T>> BodyInserters.MultipartInserter fromMultipartAsyncData(String name, P publisher, ParameterizedTypeReference<T> typeReference)
fromMultipartAsyncData(String, Publisher, Class) that
 accepts a ParameterizedTypeReference for the element type, which
 allows specifying generic type information.
 Note that you can also build the multipart data externally with
 MultipartBodyBuilder, and pass the resulting map directly to the
 bodyValue(Object) shortcut method in WebClient.
name - the part namepublisher - the publisher that forms the part valuetypeReference - the type contained in the publisherpublic static <T extends Publisher<DataBuffer>> BodyInserter<T,ReactiveHttpOutputMessage> fromDataBuffers(T publisher)
Publisher<DataBuffer> to the body.T - the type of the publisherpublisher - the data buffer publisher to writeReactiveHttpOutputMessage.writeWith(Publisher)