Microsoft 在.Net Framework 4.5中引入了HttpClient,并且是在.NET服务器端代码中使用Web API的最常用方法。但它有一些严重的问题,如释放HttpClient对象不立即关闭套接字,太多实例影响性能和单个的HttpClient或共享HttpClient实例不尊重DNS生存时间(TTL)设置。当并没有大批量或者并发调用时,选择 HttpClient 还行:

 private static readonly HttpClient HttpClient = new HttpClient();//定义var res = await HttpClient.GetStringAsync(url);//调用

 .net core 2.1 引入了HttpClientFactory的一些问题,当高并发时可以使用HttpClientFactory,例子链接里有,我只介绍一个在类库中使用方法:

1.类库中建封装类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;namespace Oss.Utils
{public class HttpClientFactory{public HttpClient Client { get; private set; }public HttpClientFactory(HttpClient httpClient){

httpClient.BaseAddress = new Uri("https://api.github.com/");
                          httpClient.DefaultRequestHeaders.Add("Accept", "application/vnd.github.v3+json");
                          httpClient.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");
                          httpClient.Timeout = TimeSpan.FromSeconds(60);
                         Client = httpClient;

        }}
}

2.其他类中调用就好了:

  private static readonly HttpClient HttpClient = new HttpClient();private static readonly HttpClientFactory HttpClientFactory = new HttpClientFactory(HttpClient);
...
...
...var res = await HttpClientFactory.Client.GetStringAsync(url);

okay,调用完成。

说明一下:在.net core 项目中使用HttpClientFactory的时候,要是在Startup.cs注册时,要安装:

Microsoft.Extensions.Http   nuget包,

直接搜索即可。

具体使用方法和参考链接如下:https://www.cjavapy.com/article/150/

转载于:https://www.cnblogs.com/fishyues/p/10150461.html

.net core 中使用httpclient,HttpClientFactory的问题相关推荐

  1. HttpClient在.NET Core中的正确打开方式

    问题来源 长期以来,.NET开发者都通过下面的方式发送http请求: using (var httpClient = new HttpClient()) {     var response = aw ...

  2. .net使用httpclient获取http状态码_在 .NET Core 中结合 HttpClientFactory 使用 Polly(中篇)...

    译者:码农老王 作者:Polly 团队 原文:http://t.cn/EhZ90oq 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的(包括标题).其中可能会去除一些不影响理解但本人实 ...

  3. 工厂参观记:.NET Core 中 HttpClientFactory 如何解决 HttpClient 臭名昭著的问题

    在 .NET Framework 与 .NET Core 中 HttpClient 有个臭名昭著的问题,HttpClient 实现了 IDispose 接口,但当你 Dispose 它时,它不会立即关 ...

  4. 如何在 ASP.NET Core 中使用 HttpClientFactory ?

    ASP.Net Core 是一个开源的,跨平台的,轻量级模块化框架,可用它来构建高性能的Web程序,这篇文章我们将会讨论如何在 ASP.Net Core 中使用 HttpClientFactory. ...

  5. 在.NET Core 中实现健康检查

    .NET Core中提供了开箱即用的运行状况检查,首先,我将在.NET Core API应用程序中执行运行状况检查,接下来,我们将使用DbContext集成SQL Server或数据库的运行状况检查, ...

  6. ASP.NET Core 中使用IHttpClientFactory发出HTTP请求

    1.HttpClient类使用存在的问题 HttpClient类的使用所存在的问题,百度搜索的文章一大堆,好多都是单纯文字描述,让人感觉不太好理解,为了更好理解HttpClient使用存在的问题,下面 ...

  7. .net core 中并发请求发送HttpWebRequest的坑

    在framework中,大量并发 HttpWebRequest 需要设置一个最大连接数 ServicePointManager.DefaultConnectionLimit = 200; 但是在.ne ...

  8. ASP.NET Core 中是否有 PostAsJsonAsync() 方法?

    咨询区 LP13 在 Asp.NET 中我一般都用 PostAsJsonAsync() 做数据提交,在 Asp.NET Core 时代我貌似没有找到,按照程序集的命名规范,我觉得应该也是由 Micro ...

  9. Api网关Kong集成Consul做服务发现及在Asp.Net Core中的使用

     1622219047536 写在前面   Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择. 简单说下 ...

最新文章

  1. 《统一沟通-微软-技巧》-14-Exchange 2010 With SP1 OWA Integration
  2. 《深入理解Spark:核心思想与源码分析》——3.10节创建和启动ExecutorAllocationManager...
  3. JZOJ 5448. 【NOIP2017提高A组冲刺11.3】机房比教室好多了
  4. Host key verification failed.
  5. 面试官给我挖坑:单台服务器并发TCP连接数到底可以有多少 ?
  6. 类似jquery的一个demo
  7. Java代码制作ie浏览器_[Java教程]判断IE浏览器代码实例
  8. 计算机关闭远程桌面 共享功能,win7旗舰版系统优化禁止用远程桌面共享的解决方法...
  9. 系统学习 TypeScript(五)——联合类型
  10. 【软考】程序设计语言复习指南
  11. 浅谈对社会工程学的认识
  12. 华为证书有效期是多久?证书要到期了怎么办?
  13. [BZOJ3503]-[CQOI2014]和谐矩阵-高斯消元
  14. 数据可视化的实现技术和工具比较(HTML5 canvas(Echart)、SVG、webGL等等)
  15. 【原生微信小程序】 组件的使用,权限弹窗
  16. 辞职信:写给我的“藤野先生”
  17. js使用策略模式实现表单验证
  18. hadoop3.3.0 编译环境搭建
  19. 趋势科技协助FBI破获大型跨国网络犯罪案 瓦解超过400万Botnet 殭尸大军
  20. 【智慧农业】智能灌溉系统应用方案

热门文章

  1. AIRec个性化推荐召回模型调参实战
  2. 解析网络诊断利器SreCli-Net
  3. 开源 | 如何实现一个iOS AOP框架?
  4. 收藏!40 个 CSS 布局技巧
  5. 千亿级流量来袭,如何用硬件加速技术为CPU减负?
  6. 游戏建模、纹理、后期,手把手教你制作《向日葵公主》
  7. EditThisCookie插件的使用方法
  8. mysql堵塞 sending data和sort状态多,cpu高
  9. 在11g中alter system set recyclebin = off 报错 recyclebin 参数在11g和10g中的区别
  10. noi.ac NA529 【神树的矩阵】