インターフェース WebClient.RequestHeadersSpec<S extends WebClient.RequestHeadersSpec<S>>
- 型パラメーター:
S- 仕様型への自己参照
- すべての既知のサブインターフェース:
WebClient.RequestBodySpec、WebClient.RequestBodyUriSpec、WebClient.RequestHeadersUriSpec<S>
- 含まれているインターフェース:
- WebClient
public static interface WebClient.RequestHeadersSpec<S extends WebClient.RequestHeadersSpec<S>>
交換に至るまでのリクエストヘッダーを指定するための契約。
メソッドのサマリー
修飾子と型メソッド説明Acceptヘッダーで指定されているように、受け入れ可能なメディア型のリストを設定します。acceptCharset(CharsetSE... acceptableCharsets) Accept-Charsetヘッダーで指定されているように、受け入れ可能な文字SEセットのリストを設定します。指定された名前の属性に指定された値を設定します。attributes(ConsumerSE<MapSE<StringSE, ObjectSE>> attributesConsumer) これまでに宣言されたすべての属性へのアクセスを提供し、値を追加、置換、削除する機能があります。context(FunctionSE<reactor.util.context.Context, reactor.util.context.Context> contextModifier) 使用すべきではありません。5.3.2 で削除されます。このメソッドはダウンストリーム (入れ子や後続) のリクエストにコンテキストを提供できないため、その価値は限定的です。指定された名前と値で Cookie を追加します。cookies(ConsumerSE<MultiValueMap<StringSE, StringSE>> cookiesConsumer) これまでに宣言されたすべての Cookie へのアクセスを提供し、値を追加、置換、削除する機能があります。reactor.core.publisher.Mono<ClientResponse>exchange()使用すべきではありません。メモリや接続がリークする可能性があるため、5.3 以降。exchangeToMono(Function)、exchangeToFlux(Function)を使用してください ; エラーステータスの処理とともに、ResponseEntityを介してレスポンスステータスとヘッダーへのアクセスを提供するretrieve()の使用も検討してください。<V> reactor.core.publisher.Flux<V>exchangeToFlux(FunctionSE<ClientResponse, ? extends reactor.core.publisher.Flux<V>> responseHandler) ClientResponseへのアクセスを介してより多くの制御を提供するretrieve()の代替。<V> reactor.core.publisher.Mono<V>exchangeToMono(FunctionSE<ClientResponse, ? extends reactor.core.publisher.Mono<V>> responseHandler) ClientResponseへのアクセスを介してより多くの制御を提供するretrieve()の代替。指定された名前に、指定された単一のヘッダー値を追加します。headers(ConsumerSE<HttpHeaders> headersConsumer) これまでに宣言されたすべてのヘッダーへのアクセスを提供し、値を追加、置換、削除できます。httpRequest(ConsumerSE<ClientHttpRequest> requestConsumer) ClientHttpRequestへのアクセスのコールバック。これにより、基盤となる HTTP ライブラリのネイティブリクエストへのアクセスが提供されます。ifModifiedSince(ZonedDateTimeSE ifModifiedSince) If-Modified-Sinceヘッダーの値を設定します。ifNoneMatch(StringSE... ifNoneMatches) If-None-Matchヘッダーの値を設定します。retrieve()レスポンスを抽出する方法の宣言に進みます。
メソッドの詳細
accept
Acceptヘッダーで指定されているように、受け入れ可能なメディア型のリストを設定します。- パラメーター:
acceptableMediaTypes- 許容されるメディア型- 戻り値:
- このビルダー
acceptCharset
Accept-Charsetヘッダーで指定されているように、受け入れ可能な文字SEセットのリストを設定します。- パラメーター:
acceptableCharsets- 許容される文字セット- 戻り値:
- このビルダー
cookie
指定された名前と値で Cookie を追加します。- パラメーター:
name- クッキー名value- クッキー値- 戻り値:
- このビルダー
cookies
これまでに宣言されたすべての Cookie へのアクセスを提供し、値を追加、置換、削除する機能があります。- パラメーター:
cookiesConsumer- アクセスを提供するコンシューマー- 戻り値:
- このビルダー
ifModifiedSince
If-Modified-Sinceヘッダーの値を設定します。日付は、1970 年 1 月 1 日 GMT からのミリ秒数として指定する必要があります。
- パラメーター:
ifModifiedSince- ヘッダーの新しい値- 戻り値:
- このビルダー
ifNoneMatch
If-None-Matchヘッダーの値を設定します。- パラメーター:
ifNoneMatches- ヘッダーの新しい値- 戻り値:
- このビルダー
header
指定された名前に、指定された単一のヘッダー値を追加します。- パラメーター:
headerName- ヘッダー名headerValues- ヘッダー値- 戻り値:
- このビルダー
headers
これまでに宣言されたすべてのヘッダーへのアクセスを提供し、値を追加、置換、削除できます。- パラメーター:
headersConsumer- アクセスを提供するコンシューマー- 戻り値:
- このビルダー
attribute
指定された名前の属性に指定された値を設定します。- パラメーター:
name- 追加する属性の名前value- 追加する属性の値- 戻り値:
- このビルダー
attributes
これまでに宣言されたすべての属性へのアクセスを提供し、値を追加、置換、削除する機能があります。- パラメーター:
attributesConsumer- アクセスを提供するコンシューマー- 戻り値:
- このビルダー
context
@DeprecatedSE S context(FunctionSE<reactor.util.context.Context, reactor.util.context.Context> contextModifier) 使用すべきではありません。5.3.2 で削除されます。このメソッドはダウンストリーム (入れ子や後続) のリクエストにコンテキストを提供できないため、その価値は限定的です。ReactorContextを設定する機能を提供します。- パラメーター:
contextModifier- コンテキストを変更する関数- 導入:
- 5.3.1
httpRequest
ClientHttpRequestへのアクセスのコールバック。これにより、基盤となる HTTP ライブラリのネイティブリクエストへのアクセスが提供されます。これは、基盤となるライブラリによって公開される高度なリクエストごとのオプションを設定する場合に役立ちます。- パラメーター:
requestConsumer-ClientHttpRequestにアクセスするコンシューマー- 戻り値:
ResponseSpecは、本文のデコード方法を指定します- 導入:
- 5.3
retrieve
WebClient.ResponseSpec retrieve()レスポンスを抽出する方法の宣言に進みます。たとえば、ステータス、ヘッダー、本文を含むResponseEntityを抽出するには、次のようにします。Mono<ResponseEntity<Person>> entityMono = client.get() .uri("/persons/1") .accept(MediaType.APPLICATION_JSON) .retrieve() .toEntity(Person.class);または体だけに興味がある場合:
Mono<Person> entityMono = client.get() .uri("/persons/1") .accept(MediaType.APPLICATION_JSON) .retrieve() .bodyToMono(Person.class);デフォルトでは、4xx および 5xx レスポンスは
WebClientResponseExceptionになります。エラー処理をカスタマイズするには、onStatusハンドラーを使用します。exchangeToMono
<V> reactor.core.publisher.Mono<V> exchangeToMono(FunctionSE<ClientResponse, ? extends reactor.core.publisher.Mono<V>> responseHandler) ClientResponseへのアクセスを介してより多くの制御を提供するretrieve()の代替。これは、たとえば、レスポンスステータスに応じて異なる方法でレスポンスをデコードするなど、高度なシナリオで役立ちます。Mono<Person> entityMono = client.get() .uri("/persons/1") .accept(MediaType.APPLICATION_JSON) .exchangeToMono(response -> { if (response.statusCode().equals(HttpStatus.OK)) { return response.bodyToMono(Person.class); } else { return response.createError(); } });注意 : 返された
Monoが完了した後、レスポンス本体が消費されていない場合は、レスポンス本体が自動的に解放されます。レスポンスコンテンツが必要な場合、提供された関数はそれをデコードする方法を宣言する必要があります。- 型パラメーター:
V- レスポンスが変換されるオブジェクトの型- パラメーター:
responseHandler- レスポンスを処理する関数- 戻り値:
- レスポンスから生成された
Mono - 導入:
- 5.3
exchangeToFlux
<V> reactor.core.publisher.Flux<V> exchangeToFlux(FunctionSE<ClientResponse, ? extends reactor.core.publisher.Flux<V>> responseHandler) ClientResponseへのアクセスを介してより多くの制御を提供するretrieve()の代替。これは、たとえば、レスポンスステータスに応じて異なる方法でレスポンスをデコードするなど、高度なシナリオで役立ちます。Flux<Person> entityMono = client.get() .uri("/persons") .accept(MediaType.APPLICATION_JSON) .exchangeToFlux(response -> { if (response.statusCode().equals(HttpStatus.OK)) { return response.bodyToFlux(Person.class); } else { return response.createError().flux(); } });注意 : 返された
Fluxが完了した後、レスポンス本体が消費されていない場合は、レスポンス本体が自動的に解放されます。レスポンスコンテンツが必要な場合、提供された関数はそれをデコードする方法を宣言する必要があります。- 型パラメーター:
V- レスポンスが変換されるオブジェクトの型- パラメーター:
responseHandler- レスポンスを処理する関数- 戻り値:
- レスポンスから生成されたオブジェクトの
Flux - 導入:
- 5.3
exchange
使用すべきではありません。メモリや接続がリークする可能性があるため、5.3 以降。exchangeToMono(Function)、exchangeToFlux(Function)を使用してください ; エラーステータスの処理とともに、ResponseEntityを介してレスポンスステータスとヘッダーへのアクセスを提供するretrieve()の使用も検討してください。HTTP リクエストを実行し、レスポンスステータスとヘッダーを含むClientResponseを返します。その後、レスポンスのメソッドを使用してボディを消費できます。Mono<Person> mono = client.get() .uri("/persons/1") .accept(MediaType.APPLICATION_JSON) .exchange() .flatMap(response -> response.bodyToMono(Person.class)); Flux<Person> flux = client.get() .uri("/persons") .accept(MediaType.APPLICATION_STREAM_JSON) .exchange() .flatMapMany(response -> response.bodyToFlux(Person.class));注意 :
retrieve()とは異なり、exchange()を使用する場合、シナリオ(成功、エラー、予期しないデータなど)に関係なく、レスポンスコンテンツを消費するのはアプリケーションの責任です。そうしないと、メモリリークが発生する可能性があります。ボディを消費するために使用可能なすべてのオプションのリストについては、ClientResponseを参照してください。exchange()を使用する正当な理由がない限り、一般にretrieve()を使用することをお勧めします。exchange()を使用すると、レスポンスをどのように、またはいつ消費するかを決定する前にレスポンスステータスとヘッダーを確認できます- 戻り値:
- レスポンス用の
Mono - 関連事項: