クラス 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
を返します。