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 ます。 ジェネリック ポリシー インスタンスは、 などの のジェネリック メソッドを使用して Policy 作成できます TimeoutAsync``1(System.Int32) 。
既存の非ジェネリック を適合するには、 IAsyncPolicy 次のようなコードを使用します。
policy.AsAsyncPolicy<HttpResponseMessage>()
メソッドは、接続エラーまたはサーバー エラー (5XX HTTP 状態コード) が原因で失敗した要求に対するポリシーの適用をサポートする、意見に基いた便利な AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) 方法です。 この種の方法では、Retry、Circuit-Breaker フォールバックなどのリアクティブ ポリシーのみをサポートします。 このメソッドは便宜上のみ提供されます。要件を満たしていない場合は、必要に応じて独自のポリシーを作成することをお勧めします。
HttpClient によって独自のタイムアウトが提供されるので、再試行やタイムアウトなどのポリシーを一緒に使用する場合は注意してください Timeout 。 再試行とタイムアウトを組み合わせると、 は、すべての試行のタイムアウトとして機能します。ポーリング タイムアウト ポリシーは、構成シーケンスの再試行ポリシーの後に構成して、試行ごとのタイムアウトを提供できます。 Timeout
Polly によって提供されるポリシーはすべて、長時間使用する場合に効率的に設計されています。 Bulkhead や Circuit-Breakerなどの特定のポリシーは状態を維持し、Bulkhead または 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) |