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
不再是 .NET Core for macOS 和 .NET Core for Linux 的依赖项。跨所有 .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 |
提供在 .NET Core 2.1 及更高版本中由 HttpClient 使用的默认消息处理程序。 |
Expect100ContinueTimeout |
获取或设置服务器 HTTP 100 Continue 响应的超时值。 |
InitialHttp2StreamWindowSize |
定义由此 SocketsHttpHandler打开的所有连接的初始 HTTP2 流接收窗口大小。 |
IsSupported |
获取一个值,用于指示当前平台是否支持处理程序。 |
KeepAlivePingDelay |
获取或设置保持活动状态 ping 延迟。 |
KeepAlivePingPolicy |
获取或设置保持活动状态 ping 行为。 |
KeepAlivePingTimeout |
获取或设置保持活动状态 ping 超时。 |
MaxAutomaticRedirections |
获取或设置允许的最大 HTTP 重定向数。 |
MaxConnectionsPerServer |
获取或设置允许向单个服务器连接的最大并行 TCP 连接数。 |
MaxResponseDrainSize |
获取或设置可从响应中排出的最大数据量(以字节为单位)。 |
MaxResponseHeadersLength |
获取或设置响应标头的最大长度,以千字节(1024 字节)为单位。 |
MeterFactory |
获取或设置 IMeterFactory ,以便为 SocketsHttpHandler 实例创建自定义Meter。 |
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) |