添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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
SocketsHttpHandler

从 .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 开始,这些配置选项不可用。

  •