PolicyHttpMessageHandler クラス


Policy で囲まれた要求処理を実行する DelegatingHandler の実装。A DelegatingHandler implementation that executes request processing surrounded by a Policy.

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


このメッセージハンドラーの実装では、一時的なエラー処理と回復性のために、このライブラリによって提供されるポリシーの使用をサポートしています。This message handler implementation supports the use of policies provided by the Polly library for transient-fault-handling and resiliency.

ここで提供されているドキュメントは、と共に使用する方法に重点を置いたガイダンスです IHttpClientFactoryThe documentation provided here is focused guidance for using Polly together with the IHttpClientFactory. Polly 関する権限のある情報については、「polly と そのドキュメント 」を参照してください。See the Polly project and its documentation for authoritative information on Polly.

の拡張メソッド PollyHttpClientBuilderExtensions は、を作成するための便利で正しい方法として設計されてい PolicyHttpMessageHandler ます。The extension methods on PollyHttpClientBuilderExtensions are designed as a convenient and correct way to create a PolicyHttpMessageHandler.

メソッドは、 AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) 任意の種類のポリシーのの作成をサポートしてい PolicyHttpMessageHandler ます。The AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) method supports the creation of a PolicyHttpMessageHandler for any kind of policy. これには、タイムアウトやキャッシュなどの非対応のポリシーが含まれます。このポリシーでは、基になる要求を最初に失敗させる必要はありません。This includes non-reactive policies, such as Timeout or Cache, which don't require the underlying request to fail first.

PolicyHttpMessageHandlerまた、 PollyHttpClientBuilderExtensions 便利なメソッドでは、ジェネリックのみが受け入れられ IAsyncPolicy`1 ます。PolicyHttpMessageHandler and the PollyHttpClientBuilderExtensions convenience methods only accept the generic IAsyncPolicy`1. 汎用のポリシーインスタンスは、などののジェネリックメソッドを使用して作成でき Policy TimeoutAsync``1(System.Int32) ます。Generic policy instances can be created by using the generic methods on Policy such as TimeoutAsync``1(System.Int32).

既存の非ジェネリックを適合させるには IAsyncPolicy 、次のようなコードを使用します。To adapt an existing non-generic IAsyncPolicy, use code like the following:


AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>)メソッドは、接続エラーまたはサーバーエラー (5XX HTTP 状態コード) が原因で失敗した要求のポリシーの適用をサポートするこだわりの便利なメソッドです。The AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) method is an opinionated convenience method that supports the application of a policy for requests that fail due to a connection failure or server error (5XX HTTP status code). この種類のメソッドでは、再試行、Circuit-Breaker、フォールバックなどのリアクティブポリシーのみがサポートされます。This kind of method supports only reactive policies such as Retry, Circuit-Breaker or Fallback. このメソッドは便宜上提供されています。要件を満たしていない場合は、必要に応じて独自のポリシーを作成することをお勧めします。This method is only provided for convenience; we recommend creating your own policies as needed if this does not meet your requirements.

HttpClient はを通じて独自のタイムアウトを提供するため、再試行やタイムアウトなどのポリシーを使用する場合は注意が必要 Timeout です。Take care when using policies such as Retry or Timeout together, as HttpClient provides its own timeout via Timeout. 再試行とタイムアウトを組み合わせると、 Timeout はすべての試行でタイムアウトとして機能します。構成シーケンスの再試行ポリシーの後に、順次タイムアウトポリシーを構成して、試行ごとのタイムアウトを指定できます。When combining Retry and Timeout, Timeout will act as a timeout across all tries; a Polly Timeout policy can be configured after a Retry policy in the configuration sequence, to provide a timeout-per-try.

Polly によって提供されるすべてのポリシーは、長期的な方法で使用する場合に効率的になるように設計されています。All policies provided by Polly are designed to be efficient when used in a long-lived way. Bulkhead や Circuit-Breaker などの特定のポリシーは状態を維持します。また、Bulkhead または Circuit-Breaker 状態を共有する呼び出しに対してスコープを設定する必要があります。Certain policies such as the Bulkhead and Circuit-Breaker maintain state and should be scoped across calls you wish to share the Bulkhead or Circuit-Breaker state. カスタムシナリオでポリシーとメッセージハンドラーを一緒に使用する場合は、適切な有効期間を確保するように注意してください。Take care to ensure the correct lifetimes when using policies and message handlers together in custom scenarios. によって提供される拡張メソッド PollyHttpClientBuilderExtensions は、ポリシーに長い有効期間を割り当て、ハンドラーローテーション機能がアクティブなときに使用できるようにすることを目的としています。The extension methods provided by PollyHttpClientBuilderExtensions are designed to assign a long lifetime to policies and ensure that they can be used when the handler rotation feature is active.

PolicyHttpMessageHandler HttpRequestMessage Policy まだ存在しない場合は、を実行する前に、によってコンテキストがにアタッチされます。The PolicyHttpMessageHandler will attach a context to the HttpRequestMessage prior to executing a Policy, if one does not already exist. は、 Context Policy および他のメッセージハンドラーで使用するために、ポリシーに提供されます。The Context will be provided to the policy for use inside the Policy and in other message handlers.



新しい PolicyHttpMessageHandler を作成します。Creates a new PolicyHttpMessageHandler.


新しい PolicyHttpMessageHandler を作成します。Creates a new PolicyHttpMessageHandler.



HTTP 応答メッセージを処理する内部ハンドラーを取得または設定します。Gets or sets the inner handler which processes the HTTP response messages.

(継承元 DelegatingHandler)



HttpMessageHandler が使用しているアンマネージド リソースを解放し、マネージド リソースを破棄します。Releases the unmanaged resources and disposes of the managed resources used by the HttpMessageHandler.

(継承元 HttpMessageHandler)

DelegatingHandler が使用しているアンマネージド リソースを解放します。オプションでマネージド リソースも破棄します。Releases the unmanaged resources used by the DelegatingHandler, and optionally disposes of the managed resources.

(継承元 DelegatingHandler)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Send(HttpRequestMessage, CancellationToken)

サーバーに送信するように HTTP 要求を内部ハンドラーに送信します。Sends an HTTP request to the inner handler to send to the server.

(継承元 DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

非同期操作として HTTP 要求を送信します。Send an HTTP request as an asynchronous operation.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Policy の実行中に呼び出され、要求処理を実行します。Called inside the execution of the Policy to perform request processing.


現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)