SocketsHttpHandler 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供 .NET Core 2.1 及更高版本中 HttpClient 使用的默认消息处理程序。
public ref class SocketsHttpHandler sealed : System::Net::Http::HttpMessageHandler[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandlerpublic sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type SocketsHttpHandler = class
    inherit HttpMessageHandlertype SocketsHttpHandler = class
    inherit HttpMessageHandlerPublic NotInheritable Class SocketsHttpHandler
Inherits HttpMessageHandler- 继承
- 属性
注解
从 .NET Core 2.1 开始,SocketsHttpHandler 类提供更高级别的 HTTP 网络类(如 HttpClient)使用的实现。 使用 SocketsHttpHandler 提供了许多优势:
- 与以前的实现相比,性能显著提高。 
- 消除平台依赖项,从而简化了部署和服务。 例如, - libcurl不再依赖于适用于 macOS 的 .NET Core 和适用于 Linux 的 .NET Core。
- 在所有 .NET 平台中一致的行为。 
如果此更改不可取,并且你使用的是 .NET Core 2.1-3.1,则可以将应用程序配置为以多种方式改用较旧的 System.Net.Http.HttpClientHandler 类:
- 通过调用 AppContext.SetSwitch 方法,如下所示: - AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);- AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
- 通过在 .netcore.runtimeconfig.json 配置文件中定义 - System.Net.Http.UseSocketsHttpHandler开关:- "runtimeOptions": { "configProperties": { "System.Net.Http.UseSocketsHttpHandler": false } }
- 定义名为 - DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER的环境变量并将其设置为- false或 0。
从 .NET 5 开始,这些配置选项不可用。
构造函数
| SocketsHttpHandler() | 创建 SocketsHttpHandler 类的实例。 | 
属性
| ActivityHeadersPropagator | 获取或设置传播分布式跟踪和上下文时要使用的传播器。
使用  | 
| AllowAutoRedirect | 获取或设置一个值,该值指示处理程序是否应遵循重定向响应。 | 
| AutomaticDecompression | 获取或设置处理程序用于自动解压缩 HTTP 内容响应的解压缩方法的类型。 | 
| ConnectCallback | 获取或设置用于打开新连接的自定义回调。 | 
| ConnectTimeout | 获取或设置在建立超时的连接之前要等待的时间跨度。 | 
| CookieContainer | 获取或设置托管 Cookie 容器对象。 | 
| Credentials | 获取或设置此处理程序使用的身份验证信息。 | 
| DefaultProxyCredentials | 使用默认(系统)代理时,获取或设置用于提交到默认代理服务器进行身份验证的凭据。 | 
| EnableMultipleHttp2Connections | 获取或设置一个值,该值指示是否可以建立到同一服务器的其他 HTTP/2 连接。 | 
| EnableMultipleHttp3Connections | 获取或设置一个值,该值指示是否可以建立到同一服务器的其他 HTTP/3 连接。 | 
| Expect100ContinueTimeout | 获取或设置服务器 HTTP 100 Continue 响应的超时值。 | 
| InitialHttp2StreamWindowSize | 定义此 SocketsHttpHandler打开的所有连接的初始 HTTP2 流接收窗口大小。 | 
| IsSupported | 获取一个值,该值指示当前平台上是否支持处理程序。 | 
| KeepAlivePingDelay | 获取或设置保持活动 ping 延迟。 | 
| KeepAlivePingPolicy | 获取或设置保持活动 ping 行为。 | 
| KeepAlivePingTimeout | 获取或设置保持活动 ping 超时。 | 
| MaxAutomaticRedirections | 获取或设置允许的最大 HTTP 重定向数。 | 
| MaxConnectionsPerServer | 获取或设置单个服务器允许的最大同时 TCP 连接数。 | 
| MaxResponseDrainSize | 获取或设置可从响应中排空的最大数据量(以字节为单位)。 | 
| MaxResponseHeadersLength | 获取或设置响应标头的最大长度(以千字节(1024 字节为单位)。 | 
| MeterFactory | 获取或设置为 SocketsHttpHandler 实例创建自定义 Meter 的 IMeterFactory。 | 
| PlaintextStreamFilter | 获取或设置一个自定义回调,该回调提供对纯文本 HTTP 协议流的访问。 | 
| PooledConnectionIdleTimeout | 获取或设置连接在池中可以空闲多长时间才能被视为可重用。 | 
| PooledConnectionLifetime | 获取或设置连接在池中可被视为可重用的时间。 | 
| PreAuthenticate | 获取或设置一个值,该值指示处理程序是否使用请求发送授权标头。 | 
| Properties | 获取 HttpClient 请求的自定义属性的可写字典(即映射)。 字典初始化为空;可以为自定义处理程序和特殊处理插入和查询键值对。 | 
| Proxy | 获取或设置 UseProxy 属性  | 
| RequestHeaderEncodingSelector | 获取或设置一个回调,该回调选择要对请求标头值进行编码的 Encoding。 | 
| ResponseDrainTimeout | 获取或设置等待数据从响应中清空的时间跨度。 | 
| ResponseHeaderEncodingSelector | 获取或设置一个回调,该回调选择用于解码响应标头值的 Encoding。 | 
| SslOptions | 获取或设置用于客户端 TLS 身份验证的选项集。 | 
| UseCookies | 获取或设置一个值,该值指示处理程序是否应使用 Cookie。 | 
| UseProxy | 获取或设置一个值,该值指示处理程序是否应使用代理。 | 
方法
| Dispose() | 释放非托管资源并释放 HttpMessageHandler使用的托管资源。(继承自 HttpMessageHandler) | 
| Dispose(Boolean) | 释放 HttpMessageHandler 使用的非托管资源,并选择性地释放托管资源。(继承自 HttpMessageHandler) | 
| Equals(Object) | 确定指定的对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 用作默认哈希函数。(继承自 Object) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object的浅表副本。(继承自 Object) | 
| Send(HttpRequestMessage, CancellationToken) | 在派生类中重写时,使用指定的请求和取消令牌发送 HTTP 请求。 否则,将引发 NotSupportedException。(继承自 HttpMessageHandler) | 
| SendAsync(HttpRequestMessage, CancellationToken) | 以异步操作的形式发送 HTTP 请求。(继承自 HttpMessageHandler) | 
| ToString() | 返回一个表示当前对象的字符串。(继承自 Object) |