.NET Framework 和 .NET Core 2.0 及更低版本中由 HttpClient 使用的默认消息处理程序为HttpClientHandler。

从 .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类:
1.通过调用AppContext.SetSwitch方法,如下所示:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
 
2.通过在.netcore.runtimeconfig.json配置文件中定义开关System.Net.Http.UseSocketsHttpHandler:
"runtimeOptions": {
"configProperties": {
"System.Net.Http.UseSocketsHttpHandler": false
}
}
3.通过定义名为的环境变量 DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER 并将其设置为false或0。
需要注意的是,从 .NET 5 开始,这些配置选项不可用。

HttpClientHandler VS SocketsHttpHandler的更多相关文章

  1. .Netcore HttpClient源码探究

    源码搜索与概述 搜索HttpClient源码 https://source.dot.net/#System.Net.Http/System/Net/Http/HttpClient.cs 1.HttpC ...

  2. C# HttpClient使用和注意事项,.NET Framework连接池并发限制

    System.Net.Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源接收 HTTP 响应. HttpClient 实例是应用于该实例执行的所有请求的设置集合,每 ...

  3. asp.net Core HttpClient 出现Cannot access a disposed object. Object name: 'SocketsHttpHandler' 的问题。

    ASP.NET Core 部署在Centos 中 偶尔出现 One or more errors occurred. (Cannot access a disposed object.Object n ...

  4. HttpClient, HttpClientHandler, and WebRequestHandler Explained

    原文地址 https://blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-and-webrequest ...

  5. HttpClientHandler

    string url = "http://"; //创建HttpClient(注意传入HttpClientHandler) var handler = new HttpClient ...

  6. HttpClient, HttpClientHandler, and WebRequestHandler介绍

    注:本文为个人学习摘录,原文地址:https://blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-an ...

  7. .NET Core 2.1 源码学习:看 SocketsHttpHandler 如何在异步方法中连接 Socket

    在 .NET Core 2.1 中,System.Net.Sockets 的性能有了很大的提升,最好的证明是 Kestrel 与 HttpClient 都改为使用 System.Net.Sockets ...

  8. [翻译] .NET Core 2.1 Preview 1 发布

    [翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣布发布 .NET Core 2.1 Previ ...

  9. .NET Core 2.1 Preview 2发布 - April 10, 2018

    我们今天宣布发布 .NET Core 2.1 Preview 2.这也是我们在接下来的两到三个月内接近最终发布的版本,该版本现已准备好进行广泛的测试.我们希望您有任何反馈意见. ASP.NET Cor ...

  10. WebApiClient的SteeltoeOSS.Discovery扩展

    1 背景 从园子里看到一些朋友在某些项目开发中,选择的架构是spring cloud搭建底层微服务框架,dotnet core来编写业务逻辑,SteeltoeOSS.Discovery是dotnet和 ...

随机推荐

  1. 三线表制作(word)

    三线表制作 转载:https://blog.csdn.net/zaishuiyifangxym/article/details/81668886

  2. 5.9 Windows驱动开发:内核InlineHook挂钩技术

    在上一章<内核LDE64引擎计算汇编长度>中,LyShark教大家如何通过LDE64引擎实现计算反汇编指令长度,本章将在此基础之上实现内联函数挂钩,内核中的InlineHook函数挂钩其实 ...

  3. 19.10 Boost Asio 同步文件传输

    在原生套接字编程中我们介绍了利用文件长度来控制文件传输的方法,本节我们将采用另一种传输方式,我们通过判断字符串是否包含goodbye lyshark关键词来验证文件是否传输结束了,当然了这种传输方式明 ...

  4. HS_xh 诗选

    @HS_xh 给我以火,给我以火!!! 我将在烈火中永生,囚歌写的时候人家还没出生,诶6年后就死了是吧,啊那人家都快死了,诶你怎么死了 你能不能凑齐十个一起发 胡适于 1920 发表了中国第一部白话诗 ...

  5. Linux下开发基于.NET的三维绘图程序

    很多人可能知道使用.NET Core可以开发跨平台(包括Windows,Linux.MacOS)的App,但知道在Linux下使用.NET Core可以开发三维程序的恐怕就很少了.本文通过借助.NET ...

  6. strobe

    总是喜欢一个人出神,置身的场景经常是小时有趣的明晃晃的下午.也不知道为什么印象中有趣的下午的阳光总是让人睁不开眼,我也曾试图给大脑传递过"能不能将那晃眼的阳光删去",但再次置身仍是 ...

  7. Bellman-Ford算法实现带有负权边的单源最短路

    Bellman-Ford算法 对于Dijkstra算法,不妨给出这样一个例子 graph LR A((A)) -->|1| C((C)) A -->|2|D((D)) D -->|- ...

  8. NC16664 [NOIP2004]合唱队形

    题目链接 题目 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2-,K,他们的身高分 ...

  9. Java集合框架学习(五) ArrayList详解

    Arraylist介绍 Arraylist类实现了List接口. public class ArrayList<E> extends AbstractList<E> imple ...

  10. Java并发编程实例--8.在线程中处理未检查异常

    java中有两类异常: 已检查异常:这类异常编译器要求开发者必须在代码中通过throws去处理. 例如:IOException和ClassNotFoundException. 未检查异常:不必显式的在 ...