クラス MultipartBodyBuilder

java.lang.ObjectSE
org.springframework.http.client.MultipartBodyBuilder

public final class MultipartBodyBuilder extends ObjectSE
マルチパートリクエストの本文を準備して、MultiValueMap<String, HttpEntity> を作成します。パーツは具体的な値である場合もあれば、Reactor MonoFluxReactiveAdapterRegistry に登録されているその他の非同期型を介する場合もあります。

このビルダーは、リアクティブ 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 (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("...")
     .bodyValue(multipartBody)
     .retrieve()
     .bodyToMono(Void.class)
 
導入:
5.0.2
作成者:
Arjen Poutsma, Rossen Stoyanchev, Sam Brannen
関連事項:
  • コンストラクターの詳細

    • 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

      public MultiValueMap<StringSE,HttpEntity<?>> build()
      構成されたパーツを含む MultiValueMap を返します。