クラス MultipartBodyBuilder
java.lang.ObjectSE
org.springframework.http.client.MultipartBodyBuilder
マルチパートリクエストの本文を準備して、
MultiValueMap<String, HttpEntity> を作成します。パーツは具体的な値である場合もあれば、Reactor Mono、Flux、ReactiveAdapterRegistry に登録されているその他の非同期型を介する場合もあります。 このビルダーは、リアクティブ WebClient を使用して multipart/form-data を POST することを目的としています。RestTemplate を使用したマルチパートリクエストの場合は、FormHttpMessageConverter の Javadoc およびリファレンスドキュメントに示されているように、MultiValueMap<String, HttpEntity> を作成して入力するだけです。
以下は、このビルダーの使用例です。
// 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 (for example, 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("...")
.bodyValue(multipartBody)
.retrieve()
.bodyToMono(Void.class)
- 導入:
- 5.0.2
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Sam Brannen
- 関連事項:
ネストされたクラスの要約
ネストされたクラスコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明<T,P extends Publisher<T>>
MultipartBodyBuilder.PartBuilderPublisherコンテンツからパーツを追加します。<T,P extends Publisher<T>>
MultipartBodyBuilder.PartBuilderasyncPart(StringSE name, P publisher, ParameterizedTypeReference<T> typeReference) 要素型情報のParameterizedTypeReferenceを持つasyncPart(String, Publisher, Class)のバリアント。build()構成されたパーツを含むMultiValueMapを返します。オブジェクトが含まれる可能性のある部分を追加します: 文字列 - フォームフィールド、Resource- ファイル部分、オブジェクト - エンコードされるコンテンツ (たとえば、JSON)。MediaType も受け入れるpart(String, Object)のバリアント。
コンストラクターの詳細
MultipartBodyBuilder
public MultipartBodyBuilder()MultipartBodyBuilderの新しい空のインスタンスを作成します。
メソッドの詳細
part
オブジェクトが存在する可能性のある部分を追加します。- 文字列 - フォームフィールド
Resource-- ファイル部分- オブジェクト - エンコードされるコンテンツ (たとえば、JSON)。
HttpEntity-- パーツのコンテンツとヘッダー。ただし、通常は返されたビルダーからヘッダーを追加する方が簡単です。Part-- サーバーリクエストの一部
- パラメーター:
name- 追加するパーツの名前part- 部品データ- 戻り値:
- パーツヘッダーをさらにカスタマイズできるビルダー
part
public MultipartBodyBuilder.PartBuilder part(StringSE name, ObjectSE part, @Nullable MediaType contentType) MediaType も受け入れるpart(String, Object)のバリアント。- パラメーター:
name- 追加するパーツの名前part- 部品データcontentType- パートのエンコードに役立つメディア型- 戻り値:
- パーツヘッダーをさらにカスタマイズできるビルダー
asyncPart
public <T,P extends Publisher<T>> MultipartBodyBuilder.PartBuilder asyncPart(StringSE name, P publisher, ClassSE<T> elementClass) Publisherコンテンツからパーツを追加します。- パラメーター:
name- 追加するパーツの名前publisher- パーツのコンテンツの発行者elementClass- パブリッシャーに含まれる要素の型- 戻り値:
- パーツヘッダーをさらにカスタマイズできるビルダー
asyncPart
public <T,P extends Publisher<T>> MultipartBodyBuilder.PartBuilder asyncPart(StringSE name, P publisher, ParameterizedTypeReference<T> typeReference) 要素型情報のParameterizedTypeReferenceを持つasyncPart(String, Publisher, Class)のバリアント。- パラメーター:
name- 追加するパーツの名前publisher- パーツ内容typeReference- パブリッシャーに含まれる要素の型- 戻り値:
- パーツヘッダーをさらにカスタマイズできるビルダー
build
構成されたパーツを含むMultiValueMapを返します。