如何正确地使用.NET Core中的HttpClient进行网络请求?
- 内容介绍
- 文章标签
- 相关推荐
本文共计764个文字,预计阅读时间需要4分钟。
前言:在Asp.Net Core 1.0时代,由于设计上的问题,HttpClient给开发者带来了无尽的困扰。用Asp.Net Core开发团队的话来说就是:我们注意到,HttpClient被很多开发人员不正确地使用。
前言
在 Asp.Net Core 1.0 时代,由于设计上的问题, HttpClient 给开发者带来了无尽的困扰,用 Asp.Net Core
开发团队的话来说就是:我们注意到,HttpClient 被很多开发人员不正确的使用。得益于 .Net Core
不断的版本快速升级;
问题来源
长期以来,.NET开发者都通过下面的方式发送www.baidu.com"); Console.WriteLine(result.StatusCode); } } Console.WriteLine("Reqeust done"); }
此时在terminal下列出所有端口:
netstat -ap tcp | grep -i "time_wait"
你会发现本地开启了10个端口,这说明HttpClient的工作原理其实跟我们认为的IDisposable是有区别的,如果你把HttpClient用作大规模的Http请求,实际上会创建很多个Http连接,而且这些资源并不能被立即释放。一个显而易见的改进方法是共享同一个HttpClient实例,从而达到节约socket资源的目的。
本文共计764个文字,预计阅读时间需要4分钟。
前言:在Asp.Net Core 1.0时代,由于设计上的问题,HttpClient给开发者带来了无尽的困扰。用Asp.Net Core开发团队的话来说就是:我们注意到,HttpClient被很多开发人员不正确地使用。
前言
在 Asp.Net Core 1.0 时代,由于设计上的问题, HttpClient 给开发者带来了无尽的困扰,用 Asp.Net Core
开发团队的话来说就是:我们注意到,HttpClient 被很多开发人员不正确的使用。得益于 .Net Core
不断的版本快速升级;
问题来源
长期以来,.NET开发者都通过下面的方式发送www.baidu.com"); Console.WriteLine(result.StatusCode); } } Console.WriteLine("Reqeust done"); }
此时在terminal下列出所有端口:
netstat -ap tcp | grep -i "time_wait"
你会发现本地开启了10个端口,这说明HttpClient的工作原理其实跟我们认为的IDisposable是有区别的,如果你把HttpClient用作大规模的Http请求,实际上会创建很多个Http连接,而且这些资源并不能被立即释放。一个显而易见的改进方法是共享同一个HttpClient实例,从而达到节约socket资源的目的。

