Share via


IHttpFilter インターフェイス

定義

HttpClient インスタンスのカスタム フィルターを実装するために使用されるインターフェイス。

public interface class IHttpFilter : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(2764795349, 2306, 17310, 191, 215, 225, 37, 82, 177, 101, 206)]
struct IHttpFilter : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(2764795349, 2306, 17310, 191, 215, 225, 37, 82, 177, 101, 206)]
public interface IHttpFilter : System.IDisposable
Public Interface IHttpFilter
Implements IDisposable
派生
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

注釈

IHttpFilter インターフェイスは、 HttpClient インスタンスのカスタム フィルターを開発するために使用されます。 カスタム フィルターは、IHttpFilter インターフェイスの SendRequestAsync メソッドに実装されます。

Windows.Web.Http 名前空間のクラスでは、Windows.Web.Http.Filters 名前空間のクラスに基づくフィルターの使用がサポートされています。 Windows.Web.Http 名前空間の HttpClient クラスは、HTTP 要求を送信し、HTTP 応答を受信するための基本クラスを提供します。 フィルターは、一般的な HTTP サービスの問題に役立つハンドラー メカニズムを提供します。 単純なフィルターを順番に連結して、より複雑な HTTP サービスの問題を処理できます。

HTTP フィルターは、HTTP 要求メッセージを受け取り、HTTP 応答メッセージを生成するブラック ボックスです。 フィルターが HTTP 応答を取得する方法は、フィルター開発者によって決定されます。 アプリは応答をすぐに作成でき、TCP 経由でサーバーに要求を送信でき、応答メッセージを生成する前にサーバー (または複数のサーバー) に複数の要求を送信することもできます。 フィルターが応答メッセージに到達する方法は指定されていないので、フィルターは要求メッセージを別のフィルター (内部フィルターと呼ばれます) に渡して、応答メッセージの作成を内部フィルターに委任できます。

フィルターは、通常、ヘッダーの追加または変更、承認の処理 ( WebAuthenticationBroker を使用している可能性があります)、またはネットワーク条件に基づいて要求を許可または禁止します。 フィルターは通常、変更を行い、その要求を内部フィルターに渡します。これは通常、フィルターが構築されるときに設定されます。

この方法により、フィルターは HTTP 要求の実行の特定の側面のみを担当し、他の側面を他のフィルターに委任できます。 フィルターは、キャッシュ、認証、リダイレクト、Cookie、サーバーとの実際の通信、またはこれらの組み合わせを実装できます。 通常、最下位 (ベース) フィルターは、ネットワークとの実際の通信を行うフィルターになります。

開発者は、サイト固有の問題に対して独自のフィルターを記述できます。 たとえば、一部のサイトでは 503 (サービス利用不可) 応答を使用して、要求を再試行する必要があることを示しています。 カスタム フィルターを実装して、この動作を検出し、それに応じて応答できます。 別の例として、ネットワーク経由でデータを送信する Windows.Web.Http 名前空間と Windows.Web.Http.Filters 名前空間のメソッドを扱うと、ネットワーク障害が原因で例外がスローされます (たとえば、飛行機モードではネットワーク接続が失われます)。 カスタム フィルターによって catch ネットワーク例外が変更され、HTTP 状態コードに変換される可能性があります。

メソッド

Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

SendRequestAsync(HttpRequestMessage)

非同期操作として IHttpFilter インスタンスに HTTP 要求を送信します。

適用対象

こちらもご覧ください