如何在.NET Framework应用程序中使用HttpClientFactory

本文介绍了在.NET Framework中使用HttpClientFactory的原因,以解决HttpClient实例过多导致的资源浪费和端口耗尽问题。通过引入HttpClientFactory,可以更有效地管理HttpClient的生命周期,并通过安装Microsoft.Extensions.Http和Microsoft.Extensions.DependencyInjection NuGet包进行配置。文章还提到了使用Typed HttpClient和Polly进行请求配置的可能性,并指出HttpClientHandler的并发请求默认限制及其调整方式。
摘要由CSDN通过智能技术生成

当我们搜索HttpClient的最佳实践时会了解到,HttpClient实例创建时会花费大量的资源用于创建HttpClientHandler实例,而且大量创建HttpClient实例还有可能造成socket端口全部耗尽的问题,所以有些开发人员会想到利用static变量来减少HttpClient的创建。但是static的HttpClient有存在无法适应DNS信息更新的问题,因此就引出了对于使用HttpClientFactory来管理HttpClient生命周期的建议。

在.NET Framework中使用HttpClientFactory,我们需要安装Microsoft.Extensions.Http和Microsoft.Extensions.DependencyInjection两个NuGet包,前者使我们可以使用HttpClientFactory,后者则使我们可以配置(configure)HttpClientFactory。如果,您还想通过Polly来进一步配置request,则还需安装Microsoft.Extensions.Http.Polly。

本文示例如何实现并配置一个Typed HttpClient。其实现的关键在于,我们需要自定义一个会使用到HttpClient实例的接口,之后在实现该接口时,将HttpClient实例作为参数传入其构造函数中。

using System.Net.Http;

namespace ConsoleApp
{
    public interface ICustomHttpClient
    {
        HttpC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值