S - 仕様型への自己参照 public static interface WebClient.RequestHeadersSpec<S extends WebClient.RequestHeadersSpec<S>>| 修飾子と型 | メソッドと説明 |
|---|---|
S | accept(MediaType... acceptableMediaTypes)Accept ヘッダーで指定されているように、受け入れ可能なメディア型のリストを設定します。 |
S | acceptCharset(CharsetSE... acceptableCharsets)Accept-Charset ヘッダーで指定されているように、受け入れ可能な文字SEセットのリストを設定します。 |
S | attribute(StringSE name, ObjectSE value) 指定された名前の属性に指定された値を設定します。 |
S | attributes(ConsumerSE<MapSE<StringSE, ObjectSE>> attributesConsumer) これまでに宣言されたすべての属性へのアクセスを提供し、値を追加、置換、削除する機能があります。 |
S | context(FunctionSE<reactor.util.context.Context,reactor.util.context.Context> contextModifier) 使用すべきではありません。 5.3.2 で削除されます。このメソッドはダウンストリーム (入れ子や後続) のリクエストにコンテキストを提供できないため、その価値は限定的です。 |
S | cookie(StringSE name, StringSE value) 指定された名前と値で Cookie を追加します。 |
S | 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() の代替。 |
S | header(StringSE headerName, StringSE... headerValues) 指定された名前に、指定された単一のヘッダー値を追加します。 |
S | headers(ConsumerSE<HttpHeaders> headersConsumer) これまでに宣言されたすべてのヘッダーへのアクセスを提供し、値を追加、置換、削除できます。 |
S | httpRequest(ConsumerSE<ClientHttpRequest> requestConsumer)ClientHttpRequest へのアクセスのコールバック。これにより、基盤となる HTTP ライブラリのネイティブリクエストへのアクセスが提供されます。 |
S | ifModifiedSince(ZonedDateTimeSE ifModifiedSince)If-Modified-Since ヘッダーの値を設定します。 |
S | ifNoneMatch(StringSE... ifNoneMatches)If-None-Match ヘッダーの値を設定します。 |
WebClient.ResponseSpec | retrieve() レスポンスを抽出する方法の宣言に進みます。 |
S accept(MediaType... acceptableMediaTypes)
Accept ヘッダーで指定されているように、受け入れ可能なメディア型のリストを設定します。acceptableMediaTypes - 許容されるメディア型 S acceptCharset(CharsetSE... acceptableCharsets)
Accept-Charset ヘッダーで指定されているように、受け入れ可能な文字SEセットのリストを設定します。acceptableCharsets - 許容される文字セット S cookie(StringSE name, StringSE value)
name - クッキー名 value - クッキー値 S cookies(ConsumerSE<MultiValueMap<StringSE,StringSE>> cookiesConsumer)
cookiesConsumer - アクセスを提供するコンシューマー S ifModifiedSince(ZonedDateTimeSE ifModifiedSince)
If-Modified-Since ヘッダーの値を設定します。日付は、1970 年 1 月 1 日 GMT からのミリ秒数として指定する必要があります。
ifModifiedSince - ヘッダーの新しい値 S ifNoneMatch(StringSE... ifNoneMatches)
If-None-Match ヘッダーの値を設定します。ifNoneMatches - ヘッダーの新しい値 S header(StringSE headerName, StringSE... headerValues)
headerName - ヘッダー名 headerValues - ヘッダー値 S headers(ConsumerSE<HttpHeaders> headersConsumer)
headersConsumer - アクセスを提供するコンシューマー S attribute(StringSE name, ObjectSE value)
name - 追加する属性の名前 value - 追加する属性の値 S attributes(ConsumerSE<MapSE<StringSE,ObjectSE>> attributesConsumer)
attributesConsumer - アクセスを提供するコンシューマー @DeprecatedSE S context(FunctionSE<reactor.util.context.Context,reactor.util.context.Context> contextModifier)
Context を設定する機能を提供します。contextModifier - コンテキストを変更する関数 S httpRequest(ConsumerSE<ClientHttpRequest> requestConsumer)
ClientHttpRequest へのアクセスのコールバック。これにより、基盤となる HTTP ライブラリのネイティブリクエストへのアクセスが提供されます。これは、基盤となるライブラリによって公開される高度なリクエストごとのオプションを設定する場合に役立ちます。requestConsumer - ClientHttpRequest にアクセスするコンシューマー ResponseSpec は、本文のデコード方法を指定します 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 ハンドラーを使用します。
<V> reactor.core.publisher.Mono<V> exchangeToMono(FunctionSE<ClientResponse,? extends reactor.core.publisher.Mono<V>> responseHandler)
ClientResponse へのアクセスを介してより多くの制御を提供する retrieve() の代替。これは、たとえば、レスポンスステータスに応じて異なる方法でレスポンスをデコードするなど、高度なシナリオで役立ちます。
Mono<Object> entityMono = client.get()
.uri("/persons/1")
.accept(MediaType.APPLICATION_JSON)
.exchangeToMono(response -> {
if (response.statusCode().equals(HttpStatus.OK)) {
return response.bodyToMono(Person.class);
}
else if (response.statusCode().is4xxClientError()) {
return response.bodyToMono(ErrorContainer.class);
}
else {
return Mono.error(response.createException());
}
});
注意 : 返された Mono が完了した後、レスポンス本体が消費されていない場合は、レスポンス本体が自動的に解放されます。レスポンスコンテンツが必要な場合、提供された関数はそれをデコードする方法を宣言する必要があります。
V - レスポンスが変換されるオブジェクトの型 responseHandler - レスポンスを処理する関数 Mono <V> reactor.core.publisher.Flux<V> exchangeToFlux(FunctionSE<ClientResponse,? extends reactor.core.publisher.Flux<V>> responseHandler)
ClientResponse へのアクセスを介してより多くの制御を提供する retrieve() の代替。これは、たとえば、レスポンスステータスに応じて異なる方法でレスポンスをデコードするなど、高度なシナリオで役立ちます。
Mono<Object> entityMono = client.get()
.uri("/persons")
.accept(MediaType.APPLICATION_JSON)
.exchangeToFlux(response -> {
if (response.statusCode().equals(HttpStatus.OK)) {
return response.bodyToFlux(Person.class);
}
else if (response.statusCode().is4xxClientError()) {
return response.bodyToMono(ErrorContainer.class).flux();
}
else {
return Flux.error(response.createException());
}
});
注意 : 返された Flux が完了した後、レスポンス本体が消費されていない場合は、レスポンス本体が自動的に解放されます。レスポンスコンテンツが必要な場合、提供された関数はそれをデコードする方法を宣言する必要があります。
V - レスポンスが変換されるオブジェクトの型 responseHandler - レスポンスを処理する関数 Flux @DeprecatedSE reactor.core.publisher.Mono<ClientResponse> exchange()
exchangeToMono(Function)、exchangeToFlux(Function) を使用してください。また、エラーステータス処理とともに ResponseEntity を介してレスポンスステータスとヘッダーにアクセスできる retrieve() の使用も検討してください。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 retrieve()