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.HttpWindows.Web.Http.Filters 命名空间中的方法,这些方法通过网络发送数据会由于网络故障而引发异常 (网络连接在飞行模式下丢失,例如) 。 自定义筛选器可以更改 catch 网络异常,并将其转换为 HTTP 状态代码。

方法

Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

SendRequestAsync(HttpRequestMessage)

以异步操作的形式在 IHttpFilter 实例上发送 HTTP 请求。

适用于

另请参阅