PolicyHttpMessageHandler クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Policy で囲まれた要求処理を実行する DelegatingHandler の実装。
public ref class PolicyHttpMessageHandler : System::Net::Http::DelegatingHandler
public class PolicyHttpMessageHandler : System.Net.Http.DelegatingHandler
type PolicyHttpMessageHandler = class
inherit DelegatingHandler
Public Class PolicyHttpMessageHandler
Inherits DelegatingHandler
- 継承
注釈
このメッセージ ハンドラーの実装では、一時的な障害処理と回復性のために Polly ライブラリによって提供されるポリシーの使用がサポートされています。
ここに記載されているドキュメントは、 と共に Polly を使用するためのガイダンスに重点を IHttpClientFactory置いています。 Polly に関する権限のある情報については、Polly プロジェクト とそのドキュメントを参照してください 。
の PollyHttpClientBuilderExtensions 拡張メソッドは、 を作成 PolicyHttpMessageHandlerするための便利で正しい方法として設計されています。
メソッドは AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) 、任意の種類のポリシーの の PolicyHttpMessageHandler 作成をサポートします。 これには、基になる要求が最初に失敗する必要がない、タイムアウトやキャッシュなどの非反応性ポリシーが含まれます。
PolicyHttpMessageHandlerまた、 PollyHttpClientBuilderExtensions 便利なメソッドでは、ジェネリックのみが受け入れられ IAsyncPolicy`1 ます。 ジェネリック ポリシー インスタンスは、 などのTimeoutAsync``1(System.Int32)ジェネリック メソッドをPolicy使用して作成できます。
既存の非ジェネリック IAsyncPolicyを適合するには、次のようなコードを使用します。
policy.AsAsyncPolicy<HttpResponseMessage>()
メソッドは AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) 、接続エラーまたはサーバー エラー (5XX HTTP 状態コード) が原因で失敗した要求に対するポリシーの適用をサポートする便利な方法です。 この種の方法では、再試行、Circuit-Breaker、フォールバックなどの事後対応ポリシーのみがサポートされます。 このメソッドは便宜上のみ提供されます。要件を満たさない場合は、必要に応じて独自のポリシーを作成することをお勧めします。
HttpClient では を介して Timeout独自のタイムアウトが提供されるので、再試行やタイムアウトなどのポリシーを一緒に使用する場合は注意してください。 再試行とタイムアウトを組み合わせると、 Timeout すべての試行でタイムアウトとして機能します。構成シーケンスの再試行ポリシーの後に Polly Timeout ポリシーを構成して、再試行ごとのタイムアウトを提供できます。
Polly によって提供されるすべてのポリシーは、有効期間の長い方法で使用する場合に効率的に設計されています。 バルクヘッドや Circuit-Breaker などの特定のポリシーは状態を維持し、バルクヘッドまたは Circuit-Breaker 状態を共有する呼び出し全体にスコープを設定する必要があります。 カスタム シナリオでポリシーとメッセージ ハンドラーを一緒に使用する場合は、適切な有効期間を確保するように注意してください。 によって PollyHttpClientBuilderExtensions 提供される拡張メソッドは、ポリシーに長い有効期間を割り当て、ハンドラーのローテーション機能がアクティブなときに使用できるように設計されています。
PolicyHttpMessageHandlerは、 を実行する前に にHttpRequestMessageコンテキストをPolicyアタッチします (まだ存在しない場合)。 は Context 、 およびその他のメッセージ ハンドラー内 Policy で使用するためにポリシーに提供されます。
コンストラクター
プロパティ
InnerHandler |
HTTP 応答メッセージを処理する内部ハンドラーを取得または設定します。 (継承元 DelegatingHandler) |
メソッド
Dispose() |
HttpMessageHandler が使用しているアンマネージド リソースを解放し、マネージド リソースを破棄します。 (継承元 HttpMessageHandler) |
Dispose(Boolean) |
DelegatingHandler が使用しているアンマネージド リソースを解放します。オプションでマネージド リソースも破棄します。 (継承元 DelegatingHandler) |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Send(HttpRequestMessage, CancellationToken) |
サーバーに送信するように HTTP 要求を内部ハンドラーに送信します。 (継承元 DelegatingHandler) |
SendAsync(HttpRequestMessage, CancellationToken) |
非同期操作としてサーバーに送信するように HTTP 要求を内部ハンドラーに送信します。 |
SendCoreAsync(HttpRequestMessage, Context, CancellationToken) |
Policy の実行中に呼び出され、要求処理を実行します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET