WinHttpHandler 类

定义

基于 Windows 的 WinHTTP 接口处理消息。 此类专用于在服务器环境中使用。

public ref class WinHttpHandler : System::Net::Http::HttpMessageHandler
public class WinHttpHandler : System.Net.Http.HttpMessageHandler
type WinHttpHandler = class
    inherit HttpMessageHandler
Public Class WinHttpHandler
Inherits HttpMessageHandler
继承
WinHttpHandler

注解

WinHttpHandler 类似于其他现有类,例如 HttpClientHandlerWinHttpHandler 在 实例下 HttpClient 提供处理程序,用于向服务器发送 HTTP 请求并接收服务器响应。 实现 WinHttpHandler 支持高达 HTTP/2 的 HTTP 版本。

WinHttpHandler设计为主要由 ASP.NET Core和与 HTTP 服务器通信的其他 .NET 应用程序在服务器环境中使用。 WinHttpHandler 此外,开发人员还可以比 HttpClientHandler 类更精细地控制应用程序的 HTTP 通信。 这允许开发人员实现更高级的 HTTP 方案或修改系统默认值 (,例如代理设置、超时和服务器 SSL 证书验证) 。

WinHttpHandler 不应作为 的 HttpClientHandler替代项。 相反,它是一个更高级的版本,适用于不足的情况 HttpClientHandlerWinHttpHandler 在 Windows 的 WinHTTP 接口上作为精简包装器实现,并且仅在 Windows 系统上受支持。

使用包含多个处理程序的链时, WinHttpHandler 应位于链的底部。

还可将此类作为 NuGet 包安装,以便在桌面应用中使用。 有关详细信息,请参阅 System.Net.Http.WinHttpHandler NuGet 包

从 .NET 5 开始, WinHttpHandler 不再作为 .NET 运行时的一部分包含在 System.Net.Http.dll 程序集中。 有关详细信息,请参阅 从 .NET 运行时中删除的 WinHttpHandler

构造函数

WinHttpHandler()

初始化 WinHttpHandler 类的新实例。

属性

AutomaticDecompression

获取或设置处理程序用于自动解压缩 HTTP 内容响应的解压缩方法类型。

AutomaticRedirection

获取或设置一个值,该值指示处理程序是否应跟随 HTTP 重定向响应。

CheckCertificateRevocationList

获取或设置一个值,该值指示是否在 SSL 证书验证过程中检查证书吊销列表。

ClientCertificateOption

获取或设置一个值,该值指示是否从证书存储自动挑选证书,或者是否允许调用方通过特定的客户端证书。

ClientCertificates

获取客户端身份验证 SSL 证书的集合,在 ClientCertificateOption 属性设置为 Manual 时,处理程序将该集合用于客户端身份验证。

CookieContainer

获取或设置托管 cookie 容器对象。 仅当 CookieUsePolicy 属性设置为 UseSpecifiedCookieContainer 时才使用此属性。 否则,SendAsync(HttpRequestMessage, CancellationToken) 方法会引发异常。

CookieUsePolicy

获取或设置一个值,该值指示应如何管理和使用 cookie。 开发者可以选择忽略 cookie、允许处理程序自动管理 cookie 或使用 CookieContainer 对象手动处理 cookie。

DefaultProxyCredentials

获取或设置用于向身份验证代理证实用户身份的凭据。

EnableMultipleHttp2Connections

获取或设置一个值,用于指示在所有现有连接上达到最大并发流数时,是否可以在同一服务器上建立其他 HTTP/2 连接。

MaxAutomaticRedirections

获取或设置允许的最大 HTTP 重定向数。

MaxConnectionsPerServer

获取或设置允许向单个服务器连接的最大 TCP 连接数。

MaxResponseDrainSize

获取或设置可从响应中排出的最大数据量(以字节为单位)。

MaxResponseHeadersLength

获取或设置服务器响应中标头部分的最大大小(以字节为单位)。

PreAuthenticate

获取或设置一个值,该值指示处理程序是否随请求发送授权标头。

Properties

获取 HttpClient 的自定义属性的可写字典(即地图)。 初始字典为空;可以为自定义处理程序和特殊处理插入和查询键值对。

Proxy

获取或设置当 WindowsProxyUsePolicy 属性设置为使用自定义代理时的自定义代理。

ReceiveDataTimeout

获取或设置从服务器接收响应的数据部分的超时值。

ReceiveHeadersTimeout

获取或设置从服务器接收响应的标头的超时值。

SendTimeout

获取或设置发送请求的超时值。

ServerCertificateValidationCallback

获取或设置用于验证服务器证书的回调方法。 此回叫是 SSL 握手的一部分。

ServerCredentials

获取或设置客户端用于向服务器进行身份验证的凭据。

SslProtocols

获取或设置客户端支持的 TLS/SSL 协议的集合。

TcpKeepAliveEnabled

获取或设置一个值,该值指示是否启用 TCP 保持连接。

TcpKeepAliveInterval

获取或设置 TCP 保持活动间隔。

TcpKeepAliveTime

获取或设置 TCP 保持连接超时。

WindowsProxyUsePolicy

获取或设置代理设置。 此属性可设置为禁用代理、使用自定义代理或在计算机上使用 WinHTTP 或 WinInet 的代理设置。

方法

Dispose()

释放由 HttpMessageHandler 使用的非托管资源和托管资源。

(继承自 HttpMessageHandler)
Dispose(Boolean)

释放由 WinHttpHandler 使用的非托管资源,并可根据需要释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
Send(HttpRequestMessage, CancellationToken)

在派生类中被重写时,发送带有指定请求和取消标记的 HTTP 请求。 否则,将引发 NotSupportedException

(继承自 HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

以异步操作发送 HTTP 请求。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于