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, waitSE
public 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
を返します。