public final class MultipartBodyBuilder extends ObjectSE
MultiValueMap<String, HttpEntity> を作成します。パーツは具体的な値である場合もあれば、Reactor Mono、Flux、ReactiveAdapterRegistry に登録されているその他の非同期型を介する場合もあります。 このビルダーは、リアクティブ型 WebClient での使用を目的としています。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 (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)
| 修飾子と型 | クラスと説明 |
|---|---|
static interface | MultipartBodyBuilder.PartBuilder パーツヘッダーをさらにカスタマイズできるビルダー。 |
| コンストラクターと説明 |
|---|
MultipartBodyBuilder()MultipartBodyBuilder の新しい空のインスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
<T,P extends Publisher<T>> | asyncPart(StringSE name, P publisher, ClassSE<T> elementClass)Publisher コンテンツからパーツを追加します。 |
<T,P extends Publisher<T>> | asyncPart(StringSE name, P publisher, ParameterizedTypeReference<T> typeReference) 要素型情報の ParameterizedTypeReference を持つ asyncPart(String, Publisher, Class) のバリアント。 |
MultiValueMap<StringSE, HttpEntity<?>> | build() 構成されたパーツを含む MultiValueMap を返します。 |
MultipartBodyBuilder.PartBuilder | part(StringSE name, ObjectSE part) オブジェクトが存在する可能性のある部分を追加します: 文字列 - フォームフィールド Resource- ファイルパーツオブジェクト - エンコードされるコンテンツ(例: |
MultipartBodyBuilder.PartBuilder | part(StringSE name, ObjectSE part, MediaType contentType)MediaType も受け入れる part(String, Object) のバリアント。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic MultipartBodyBuilder()
MultipartBodyBuilder の新しい空のインスタンスを作成します。public MultipartBodyBuilder.PartBuilder part(StringSE name, ObjectSE part)
Resource -- ファイル部分HttpEntity -- パーツのコンテンツとヘッダー。ただし、通常は返されたビルダーからヘッダーを追加する方が簡単です。Part -- サーバーリクエストの一部 name - 追加するパーツの名前 part - 部品データ public MultipartBodyBuilder.PartBuilder part(StringSE name, ObjectSE part, @Nullable MediaType contentType)
part(String, Object) のバリアント。name - 追加するパーツの名前 part - 部品データ contentType - パートのエンコードに役立つメディア型 public <T,P extends Publisher<T>> MultipartBodyBuilder.PartBuilder asyncPart(StringSE name, P publisher, ClassSE<T> elementClass)
Publisher コンテンツからパーツを追加します。name - 追加するパーツの名前 publisher - パーツのコンテンツの発行者 elementClass - パブリッシャーに含まれる要素の型 public <T,P extends Publisher<T>> MultipartBodyBuilder.PartBuilder asyncPart(StringSE name, P publisher, ParameterizedTypeReference<T> typeReference)
ParameterizedTypeReference を持つ asyncPart(String, Publisher, Class) のバリアント。name - 追加するパーツの名前 publisher - パーツ内容 typeReference - パブリッシャーに含まれる要素の型 public MultiValueMap<StringSE,HttpEntity<?>> build()
MultiValueMap を返します。