Class BodyInserters
BodyInserter implementations.- Since:
- 5.0
- Author:
- Arjen Poutsma, Rossen Stoyanchev, Sebastien Deleuze
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic interfaceExtension ofBodyInserterthat allows for adding form data or multipart form data.static interfaceExtension ofBodyInserters.FormInserterthat allows for adding asynchronous parts.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic <T> BodyInserter<T,ReactiveHttpOutputMessage> empty()Inserter that does not write.static <T extends Publisher<DataBuffer>>
 BodyInserter<T,ReactiveHttpOutputMessage> fromDataBuffers(T publisher) Inserter to write the givenPublisher<DataBuffer>to the body.static BodyInserters.FormInserter<String>fromFormData(String name, String value) Return aBodyInserters.FormInserterto write the given key-value pair as URL-encoded form data.static BodyInserters.FormInserter<String>fromFormData(MultiValueMap<String, String> formData) Return aBodyInserters.FormInserterto write the givenMultiValueMapas URL-encoded form data.static <T,P extends Publisher<T>> 
 BodyInserters.MultipartInserterfromMultipartAsyncData(String name, P publisher, Class<T> elementClass) Return aBodyInserters.MultipartInserterto write the given asynchronous parts, as multipart data.static <T,P extends Publisher<T>> 
 BodyInserters.MultipartInserterfromMultipartAsyncData(String name, P publisher, ParameterizedTypeReference<T> typeReference) Variant offromMultipartAsyncData(String, Publisher, Class)that accepts aParameterizedTypeReferencefor the element type, which allows specifying generic type information.fromMultipartData(String name, Object value) Return aBodyInserters.MultipartInserterto write the given parts, as multipart data.fromMultipartData(MultiValueMap<String, ?> multipartData) Return aBodyInserters.MultipartInserterto write the givenMultiValueMapas multipart data.static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromObject(T body) Deprecated.static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromProducer(T producer, Class<?> elementClass) Inserter to write the given producer of value(s) which must be aPublisheror another producer adaptable to aPublisherviaReactiveAdapterRegistry.static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromProducer(T producer, ParameterizedTypeReference<?> elementTypeRef) Inserter to write the given producer of value(s) which must be aPublisheror another producer adaptable to aPublisherviaReactiveAdapterRegistry.static <T,P extends Publisher<T>> 
 BodyInserter<P,ReactiveHttpOutputMessage> fromPublisher(P publisher, Class<T> elementClass) Inserter to write the givenPublisher.static <T,P extends Publisher<T>> 
 BodyInserter<P,ReactiveHttpOutputMessage> fromPublisher(P publisher, ParameterizedTypeReference<T> elementTypeRef) Inserter to write the givenPublisher.static <T extends Resource>
 BodyInserter<T,ReactiveHttpOutputMessage> fromResource(T resource) Inserter to write the givenResource.static <T,S extends Publisher<ServerSentEvent<T>>> 
 BodyInserter<S,ServerHttpResponse> fromServerSentEvents(S eventsPublisher) Inserter to write the givenServerSentEventpublisher.static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromValue(T body) Inserter to write the given value.
- 
Constructor Details- 
BodyInserterspublic BodyInserters()
 
- 
- 
Method Details- 
emptyInserter that does not write.- Returns:
- the inserter
 
- 
fromValueInserter to write the given value.Alternatively, consider using the bodyValue(Object)shortcuts onWebClientandServerResponse.- Type Parameters:
- T- the type of the body
- Parameters:
- body- the value to write
- Returns:
- the inserter to write a single value
- Throws:
- IllegalArgumentException- if- bodyis a- Publisheror an instance of a type supported by- ReactiveAdapterRegistry.getSharedInstance(), for which- fromPublisher(Publisher, Class)or- fromProducer(Object, Class)should be used.
- See Also:
 
- 
fromObjectDeprecated.As of Spring Framework 5.2, in favor offromValue(Object)Inserter to write the given object.Alternatively, consider using the bodyValue(Object)shortcuts onWebClientandServerResponse.- Type Parameters:
- T- the type of the body
- Parameters:
- body- the body to write to the response
- Returns:
- the inserter to write a single object
- Throws:
- IllegalArgumentException- if- bodyis a- Publisheror an instance of a type supported by- ReactiveAdapterRegistry.getSharedInstance(), for which- fromPublisher(Publisher, Class)or- fromProducer(Object, Class)should be used.
- See Also:
 
- 
fromProducerpublic static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromProducer(T producer, Class<?> elementClass) Inserter to write the given producer of value(s) which must be aPublisheror another producer adaptable to aPublisherviaReactiveAdapterRegistry.Alternatively, consider using the bodyshortcuts onWebClientandServerResponse.- Type Parameters:
- T- the type of the body
- Parameters:
- producer- the source of body value(s).
- elementClass- the class of values to be produced
- Returns:
- the inserter to write a producer
- Since:
- 5.2
 
- 
fromProducerpublic static <T> BodyInserter<T,ReactiveHttpOutputMessage> fromProducer(T producer, ParameterizedTypeReference<?> elementTypeRef) Inserter to write the given producer of value(s) which must be aPublisheror another producer adaptable to aPublisherviaReactiveAdapterRegistry.Alternatively, consider using the bodyshortcuts onWebClientandServerResponse.- Type Parameters:
- T- the type of the body
- Parameters:
- producer- the source of body value(s).
- elementTypeRef- the type of values to be produced
- Returns:
- the inserter to write a producer
- Since:
- 5.2
 
- 
fromPublisherpublic static <T,P extends Publisher<T>> BodyInserter<P,ReactiveHttpOutputMessage> fromPublisher(P publisher, Class<T> elementClass) Inserter to write the givenPublisher.Alternatively, consider using the bodyshortcuts onWebClientandServerResponse.- Type Parameters:
- T- the type of the elements contained in the publisher
- P- the- Publishertype
- Parameters:
- publisher- the publisher to write with
- elementClass- the class of elements in the publisher
- Returns:
- the inserter to write a Publisher
 
- 
fromPublisherpublic static <T,P extends Publisher<T>> BodyInserter<P,ReactiveHttpOutputMessage> fromPublisher(P publisher, ParameterizedTypeReference<T> elementTypeRef) Inserter to write the givenPublisher.Alternatively, consider using the bodyshortcuts onWebClientandServerResponse.- Type Parameters:
- T- the type of the elements contained in the publisher
- P- the- Publishertype
- Parameters:
- publisher- the publisher to write with
- elementTypeRef- the type of elements contained in the publisher
- Returns:
- the inserter to write a Publisher
 
- 
fromResourcepublic static <T extends Resource> BodyInserter<T,ReactiveHttpOutputMessage> fromResource(T resource) Inserter to write the givenResource.If the resource can be resolved to a file, it will be copied using zero-copy. - Type Parameters:
- T- the type of the- Resource
- Parameters:
- resource- the resource to write to the output message
- Returns:
- the inserter to write a Publisher
 
- 
fromServerSentEventspublic static <T,S extends Publisher<ServerSentEvent<T>>> BodyInserter<S,ServerHttpResponse> fromServerSentEvents(S eventsPublisher) Inserter to write the givenServerSentEventpublisher.Alternatively, you can provide event data objects via fromPublisher(Publisher, Class)orfromProducer(Object, Class), and set the "Content-Type" totext/event-stream.- Type Parameters:
- T- the type of the data elements in the- ServerSentEvent
- Parameters:
- eventsPublisher- the- ServerSentEventpublisher to write to the response body
- Returns:
- the inserter to write a ServerSentEventpublisher
- See Also:
 
- 
fromFormDatapublic static BodyInserters.FormInserter<String> fromFormData(MultiValueMap<String, String> formData) Return aBodyInserters.FormInserterto write the givenMultiValueMapas URL-encoded form data. The returned inserter allows for additional entries to be added viaBodyInserters.FormInserter.with(String, Object).Note that you can also use the bodyValue(Object)method in the request builders of both theWebClientandWebTestClient. 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.- Parameters:
- formData- the form data to write to the output message
- Returns:
- the inserter that allows adding more form data
 
- 
fromFormDataReturn aBodyInserters.FormInserterto write the given key-value pair as URL-encoded form data. The returned inserter allows for additional entries to be added viaBodyInserters.FormInserter.with(String, Object).- Parameters:
- name- the key to add to the form
- value- the value to add to the form
- Returns:
- the inserter that allows adding more form data
 
- 
fromMultipartDatapublic static BodyInserters.MultipartInserter fromMultipartData(MultiValueMap<String, ?> multipartData) Return aBodyInserters.MultipartInserterto write the givenMultiValueMapas multipart data. Values in the map can be an Object or anHttpEntity.Note that you can also build the multipart data externally with MultipartBodyBuilder, and pass the resulting map directly to thebodyValue(Object)shortcut method inWebClient.- Parameters:
- multipartData- the form data to write to the output message
- Returns:
- the inserter that allows adding more parts
- See Also:
 
- 
fromMultipartDataReturn aBodyInserters.MultipartInserterto write the given parts, as multipart data. Values in the map can be an Object or anHttpEntity.Note that you can also build the multipart data externally with MultipartBodyBuilder, and pass the resulting map directly to thebodyValue(Object)shortcut method inWebClient.- Parameters:
- name- the part name
- value- the part value, an Object or- HttpEntity
- Returns:
- the inserter that allows adding more parts
 
- 
fromMultipartAsyncDatapublic static <T,P extends Publisher<T>> BodyInserters.MultipartInserter fromMultipartAsyncData(String name, P publisher, Class<T> elementClass) Return aBodyInserters.MultipartInserterto 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 thebodyValue(Object)shortcut method inWebClient.- Parameters:
- name- the part name
- publisher- the publisher that forms the part value
- elementClass- the class contained in the- publisher
- Returns:
- the inserter that allows adding more parts
 
- 
fromMultipartAsyncDatapublic static <T,P extends Publisher<T>> BodyInserters.MultipartInserter fromMultipartAsyncData(String name, P publisher, ParameterizedTypeReference<T> typeReference) Variant offromMultipartAsyncData(String, Publisher, Class)that accepts aParameterizedTypeReferencefor 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 thebodyValue(Object)shortcut method inWebClient.- Parameters:
- name- the part name
- publisher- the publisher that forms the part value
- typeReference- the type contained in the- publisher
- Returns:
- the inserter that allows adding more parts
 
- 
fromDataBufferspublic static <T extends Publisher<DataBuffer>> BodyInserter<T,ReactiveHttpOutputMessage> fromDataBuffers(T publisher) Inserter to write the givenPublisher<DataBuffer>to the body.- Type Parameters:
- T- the type of the publisher
- Parameters:
- publisher- the data buffer publisher to write
- Returns:
- the inserter to write directly to the body
- See Also:
 
 
- 
fromValue(Object)