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.HttpMessageHandler
	public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
	[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type SocketsHttpHandler = class
    inherit HttpMessageHandler
	type SocketsHttpHandler = class
    inherit HttpMessageHandler
	Public 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) |