类 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 forFormHttpMessageConverterand 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 interfaceMultipartBodyBuilder.PartBuilderBuilder 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 fromPublishercontent.<T,P extends org.reactivestreams.Publisher<T>>
MultipartBodyBuilder.PartBuilderasyncPart(String name, P publisher, ParameterizedTypeReference<T> typeReference)Variant ofasyncPart(String, Publisher, Class)with aParameterizedTypeReferencefor the element type information.MultiValueMap<String,HttpEntity<?>>build()Return aMultiValueMapwith the configured parts.MultipartBodyBuilder.PartBuilderpart(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.PartBuilderpart(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 fromPublishercontent.- 参数:
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 aParameterizedTypeReferencefor 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 aMultiValueMapwith the configured parts.