类 MultipartBodyBuilder
- java.lang.Object
- org.springframework.http.client.MultipartBodyBuilder
public final class MultipartBodyBuilder extends Object
Prepare the body of a multipart request, resulting in aMultiValueMap<String, HttpEntity>
. Parts may be concrete values or via asynchronous types such as ReactorMono
,Flux
, and others registered in theReactiveAdapterRegistry
.This builder is intended for use with the reactive
WebClient
. For multipart requests with theRestTemplate
, simply create and populate aMultiValueMap<String, HttpEntity>
as shown in the Javadoc forFormHttpMessageConverter
and in the reference docs.Below are examples of using this builder:
// Add form field MultipartBodyBuilder builder = new MultipartBodyBuilder(); builder.part("form field", "form value").header("foo", "bar"); // Add file part Resource image = new ClassPathResource("image.jpg"); builder.part("image", image).header("foo", "bar"); // Add content (e.g. JSON) Account account = ... builder.part("account", account).header("foo", "bar"); // Add content from Publisher Mono<Account> accountMono = ... builder.asyncPart("account", accountMono).header("foo", "bar"); // Build and use MultiValueMap<String, HttpEntity<?>> multipartBody = builder.build(); Mono<Void> result = webClient.post() .uri("...") .body(multipartBody) .retrieve() .bodyToMono(Void.class)
- 从以下版本开始:
- 5.0.2
- 作者:
- Arjen Poutsma, Rossen Stoyanchev
- 另请参阅:
- RFC 7578
嵌套类概要
嵌套类 修饰符和类型 类 说明 static interface
MultipartBodyBuilder.PartBuilder
Builder that allows for further customization of part headers.
构造器概要
构造器 构造器 说明 MultipartBodyBuilder()
Creates a new, empty instance of theMultipartBodyBuilder
.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 <T,P extends org.reactivestreams.Publisher<T>>
MultipartBodyBuilder.PartBuilderasyncPart(String name, P publisher, Class<T> elementClass)
Add a part fromPublisher
content.<T,P extends org.reactivestreams.Publisher<T>>
MultipartBodyBuilder.PartBuilderasyncPart(String name, P publisher, ParameterizedTypeReference<T> typeReference)
Variant ofasyncPart(String, Publisher, Class)
with aParameterizedTypeReference
for the element type information.MultiValueMap<String,HttpEntity<?>>
build()
Return aMultiValueMap
with the configured parts.MultipartBodyBuilder.PartBuilder
part(String name, Object part)
Add a part where the Object may be: String -- form fieldResource
-- file part Object -- content to be encoded (e.g. to JSON)HttpEntity
-- part content and headers although generally it's easier to add headers through the returned builderPart
-- a part from a server requestMultipartBodyBuilder.PartBuilder
part(String name, Object part, MediaType contentType)
Variant ofpart(String, Object)
that also accepts a MediaType.
构造器详细资料
MultipartBodyBuilder
public MultipartBodyBuilder()
Creates a new, empty instance of theMultipartBodyBuilder
.
方法详细资料
part
public MultipartBodyBuilder.PartBuilder part(String name, Object part)
Add a part where the Object may be:- String -- form field
Resource
-- file part- Object -- content to be encoded (e.g. to JSON)
HttpEntity
-- part content and headers although generally it's easier to add headers through the returned builderPart
-- a part from a server request
- 参数:
name
- the name of the part to addpart
- the part data- 返回:
- builder that allows for further customization of part headers
part
public MultipartBodyBuilder.PartBuilder part(String name, Object part, @Nullable MediaType contentType)
Variant ofpart(String, Object)
that also accepts a MediaType.- 参数:
name
- the name of the part to addpart
- the part datacontentType
- the media type to help with encoding the part- 返回:
- builder that allows for further customization of part headers
asyncPart
public <T,P extends org.reactivestreams.Publisher<T>> MultipartBodyBuilder.PartBuilder asyncPart(String name, P publisher, Class<T> elementClass)
Add a part fromPublisher
content.- 参数:
name
- the name of the part to addpublisher
- a Publisher of content for the partelementClass
- the type of elements contained in the publisher- 返回:
- builder that allows for further customization of part headers
asyncPart
public <T,P extends org.reactivestreams.Publisher<T>> MultipartBodyBuilder.PartBuilder asyncPart(String name, P publisher, ParameterizedTypeReference<T> typeReference)
Variant ofasyncPart(String, Publisher, Class)
with aParameterizedTypeReference
for the element type information.- 参数:
name
- the name of the part to addpublisher
- the part contentstypeReference
- the type of elements contained in the publisher- 返回:
- builder that allows for further customization of part headers
build
public MultiValueMap<String,HttpEntity<?>> build()
Return aMultiValueMap
with the configured parts.