首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏精益码农

    HttpClientFactory的套路,你知多少?

    背景 ASP.NET Core 在 2.1 之后推出了具有弹性 HTTP 请求能力的 HttpClient 工厂类 HttpClientFactoryHttpClientFactory 以模块化、可命名、可配置、弹性方式重建了 HttpClient 的使用方式: ? 刨瓜问底 很明显,HttpClientFactory 源码的解读分为 2 部分,心里藏着伪代码,带着问题思考更香(手动狗头)。 P1. 的一个思路:HttpClientFactory日志不好用,自己扩展一个? https://github.com/dotnet/extensions/blob/master/src/HttpClientFactory/Http/src/DefaultHttpClientFactory.cs

    1.7K30发布于 2020-04-15
  • 来自专栏AI.NET极客圈

    .NET Core 3.0深入源码理解HttpClientFactory之实战

    写在前面 前面两篇文章透过源码角度,理解了HttpClientFactory的内部实现,当我们在项目中使用时,总会涉及以下几个问题: HttpClient超时处理以及重试机制 HttpClient熔断器模式的实现 application/vnd.github.v3+json"); 6: c.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample +json"); // GitHub API versioning 6: c.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample vnd.github.v3+json"); // GitHub API versioning 6: c.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample view=aspnetcore-3.0 https://rehansaeed.com/optimally-configuring-asp-net-core-httpclientfactory/

    1.5K20发布于 2019-08-06
  • 来自专栏DotNet NB && CloudNative

    .NET使用HttpClientFactory和Polly 替代直接调用HttpClient的优势

    引入 HttpClientFactory 为了解决这些问题,.NET 推出了 HttpClientFactory,它被认为是 Web 请求的最佳实践工具。 HttpClientFactory 提供了以下优势: 高效的资源管理:HttpClientFactory 维护一个实例池,可以重用实例,减少套接字耗尽和资源浪费。 使用 HttpClientFactory 和 Polly 进行实际测试 通过以下步骤,我们可以开始在应用程序中使用 HttpClientFactory 和 Polly: 1. 注册 HttpClientFactory 并集成 Polly 在应用启动时注册 HttpClientFactory 和 Polly 策略: builder.Services.AddHttpClient( 使用 HttpClientFactory 的优势 弹性:通过优雅地处理暂时性故障,使应用程序更加稳定和健壮。

    77010编辑于 2024-12-05
  • 来自专栏DotNet程序园

    asp.net core 使用HttpClientFactory Polly实现熔断降级

    前言 在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择 需要不同的基地址,不同的HTTP 标头和其他对请求个性化操作的场景时,需要动手管理多个HttpClient实例,为了简化HttpClient实例管理,.NET Core 2.1提供了一个新的HTTPClientFactory 什么是HttpClientFactory 从ASPNET Core开始,Polly与IHttpClientFastory集成。 ; public ValuesController(IHttpClientFactory httpClientFactory) { this. _httpClientFactory = httpClientFactory; } // GET api/values [HttpGet]

    1.1K10发布于 2019-09-24
  • 来自专栏AI.NET极客圈

    .NET Core 3.0之深入源码理解HttpClientFactory(二)

    } 8: 9: builder.Services.AddTransient<TClient>(s => 10: { 11: var httpClientFactory = s.GetRequiredService<IHttpClientFactory>(); 12: var httpClient = httpClientFactory.CreateClient

    1.1K20发布于 2019-07-30
  • 来自专栏AI.NET极客圈

    .NET Core 3.0之深入源码理解HttpClientFactory(一)

    HttpClientFactory自.NET Core 2.1引入,可以认为它是一个配置和创建HttpClient的中心化,.NET Core通过引入HttpClientFactory用于自动化维护HttpMessageHandler 详细介绍 HttpClientFactory的功能主要位于Microsoft.Extensions.Http包中,它已经默认包含在Microsoft.AspNetCore.App元包中。 针对HttpClientFactory的处理涉及到IHttpClientBuilder、IHttpClientFactory、IHttpMessageHandlerFactory、ITypedHttpClientFactory

    1.2K20发布于 2019-07-25
  • 来自专栏HueiFeng技术专栏

    ASP.NET Core 使用HttpClientFactory Polly实现熔断降级

    前言 在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择 什么是HttpClientFactory 从ASPNET Core开始,Polly与IHttpClientFastory集成。 HttpClientFactory简单使用 Startup添加 services.AddHttpClient(); 通过IHttpClientFactory创建一个HttpClient对象,后面操作如旧 ; public ValuesController(IHttpClientFactory httpClientFactory) { this. _httpClientFactory = httpClientFactory; } // GET api/values [HttpGet]

    1.3K20发布于 2020-03-13
  • 来自专栏HueiFeng技术专栏

    asp.net core 使用HttpClientFactory Polly实现熔断降级

    前言 在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择 什么是HttpClientFactory 从ASPNET Core开始,Polly与IHttpClientFastory集成。 HttpClientFactory简单使用 Startup添加 services.AddHttpClient(); 通过IHttpClientFactory创建一个HttpClient对象,后面操作如旧 ; public ValuesController(IHttpClientFactory httpClientFactory) { this. _httpClientFactory = httpClientFactory; } // GET api/values [HttpGet]

    1.1K30发布于 2020-02-12
  • 来自专栏雪雁的专栏

    HttpClientFactory日志不好用,自己扩展一个?

    前言   .NetCore2.1新推出HttpClientFactory工厂类, 替代了早期的HttpClient,并新增了弹性Http调用机制 (集成Policy组件)。 传送门 HttpClientFactory 以一种模块化、可命名、弹性可预期的方式重建了HttpClient的使用方式。 HttpClientFactory以依赖注入的方式集成到.NETCore 框架: HttpClientFactory典型用法 使用时从IHttpClientFactory工厂创建所需HttpClient 因此本文打算重新构建 HttpClientFactory日志:给某次请求的全部日志设置TraceId 结合我给出的典型用法来看IHttpClientFactory组件原理: ? 其中写入日志的代码Copy自HttpClientFactory源代码。

    1.6K10发布于 2019-12-11
  • 来自专栏AI.NET极客圈

    告别 HttpClient 痛点:深入解析 .NET HttpClientFactory 的设计与最佳实践

    为了解决这些问题,.NET Core 2.1 引入了 HttpClientFactory。 本文将深入探讨 HttpClientFactory 的工作原理、内部机制、使用模式以及最佳实践,旨在为 .NET 开发者提供全面的指导。 HttpClientFactory 的工作原理 HttpClientFactory 通过管理 HttpMessageHandler 的生命周期,解决了上述问题。 清理机制:HttpClientFactory 维护一个活动 handler 队列(_activeHandlers)和一个过期 handler 队列(_expiredHandlers)。 依赖注入(DI)集成 HttpClientFactory 与 Microsoft.Extensions.DependencyInjection 紧密集成。

    65410编辑于 2025-07-04
  • 来自专栏饭勺oO的技术博客

    asp.net core之HttpClient

    同时,本文还强调了HttpClientFactory的优势,如更好的性能、资源管理和可配置性。 HttpClientFactory的介绍 为了解决上述问题,ASP.NET Core引入了HttpClientFactoryHttpClientFactory的主要优势包括: 性能优化:HttpClientFactory通过重用和管理HttpClient实例来提高性能。 ) { _logger = logger; _httpClientFactory = httpClientFactory; } [HttpGet("TestHttpClientFactory HttpClientFactory的高级用法 除了基本用法之外,HttpClientFactory还提供了一些高级特性,以满足更复杂的需求。

    89420编辑于 2023-10-18
  • 来自专栏架构师高级俱乐部

    .NetCore 2.1以后的HttpClient最佳实践

    02 什么是HttpClientFactoryHttpClientFactory旨在帮助您开始解决这些问题,并提供了一种新的机制来创建在幕后为我们正确管理的HttpClient实例。 我们使用HttpClientFactory创建客户端。在幕后,HttpClientFactory将为我们创建一个新的HttpClient。 HttpClientFactory收集这些HttpClientHandler实例并管理它们的生命周期,以解决之前提到的一些问题。 04 概要 通过使用HttpClientfactory我们不需要考虑如何管理HttpClient的生命周期或担心遇到DNS问题。

    1.4K20编辑于 2022-04-27
  • 来自专栏雪雁的专栏

    Asp.Net Core中HttpClient的使用方式

    Couldn't resolve host name 二、现有HttpClient使用方式   在.Net Core2.1后,微软引入了HttpClientFactory彻底解决这个问题,工厂模式的职责是负责创建对象 ; public HttpClientController(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory; } [HttpGet] [Route(nameof(Index))] public async Task<IActionResult > Index() { var client = _httpClientFactory.CreateClient(); var result = await client.GetAsync http://aspnetcore.online/api/resource/getresource"); return Ok(result); } }   具体实现原理简述为:HttpClientFactory

    1.6K20发布于 2019-03-11
  • 来自专栏DotNet NB && CloudNative

    C#中的HTTP客户端:专家级最佳实践与性能优化指南

    使用HttpClientFactory(.NET Core 2.1及以上) .NET Core 2.1引入了HttpClientFactory,解决了上述问题。 使用强类型客户端 可以通过使用AddHttpClient<TClient>()方法注册强类型客户端,进一步改进HttpClientFactory方法。 正确处理销毁 虽然HttpClient实现了IDisposable,但使用HttpClientFactory时不需要显式销毁由工厂创建的客户端。工厂负责管理客户端生命周期。 通过采用HttpClientFactory和遵循本文中的最佳实践,您可以避免常见的陷阱并构建能够有效处理HTTP通信的强大应用程序。 记住这些关键点: • 使用HttpClientFactory而不是直接实例化HttpClient • 使用强类型客户端 • 设置合理的超时 • 实现弹性模式 • 正确处理认证和并发 • 考虑性能优化如压缩

    75810编辑于 2025-04-21
  • 来自专栏token的技术分享

    如何通过SK集成chatGPT实现DotNet项目工程化?

    ("ChatGPT")) .Build(); }).AddSingleton<OpenAIChatCompletion>((services) => { var httpClientFactory = httpClientFactory; _chatCompletion = chatCompletion; _redisClient.Subscribe(nameof = new List<AdCode>(); } private readonly IHttpClientFactory _httpClientFactory; public WeatherPlugin(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory ; } var http = _httpClientFactory.CreateClient(nameof(WeatherPlugin)); var result

    51920编辑于 2023-10-22
  • 来自专栏科控自动化

    [Blazor] 地热数据采集项目9 Blazor Server 应用程序中进行 HTTP 请求

    class ElectricMeterService : IElectricMeterService { private readonly IHttpClientFactory _httpClientFactory ; public ElectricMeterService( IHttpClientFactory httpClientFactory, ILogger <ElectricMeterService> logger) { (_httpClientFactory, _logger) = (httpClientFactory deviceName) { // Create the client using HttpClient httpClient = _httpClientFactory.CreateClient

    54030编辑于 2022-12-20
  • 来自专栏全球技术精选

    在.NET Core 中实现健康检查

    public class ApiHealthCheck : IHealthCheck { private readonly IHttpClientFactory _httpClientFactory ; public ApiHealthCheck(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory; } public async Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) { using (var httpClient = _httpClientFactory.CreateClient

    1.3K10发布于 2021-02-19
  • 来自专栏算法修养

    HttpClient参观记:.net core 2.2 对HttpClient到底做了神马

    所以临时解决方式是使用静态的 HttpClient 对象,No Dispose No Time_Wait 后来在 .net core2.1 中,引入了 HttpClientFactory 来解决这一问题 HttpClientFactory 直接负责给 HttpClient 输入 全新的 HttpMessageHandle 对象,并且管理 HttpMessageHandle 的生杀大权,这样断开 Tcp 连接的操作都由 HttpClientFactory 来用一种良好的机制去解决。 因为我在实际生产环境中,无论使用静态的 HttpClient 还是使用 HttpClientFactory ,在高并发下的情况下 Tcp 连接都陡然上升。

    68620发布于 2019-06-11
  • 来自专栏python进阶学习

    C# 爬虫技术:京东视频内容抓取的实战案例分析

    proxyPass) }; // 配置Flurl使用自定义的HttpClient FlurlHttp.Configure(settings => settings.HttpClientFactory = new HttpClientFactory(proxy)); // 京东视频页面的URL,需要替换为实际的URL string videoUrl = "http: { Console.WriteLine("请求失败,状态码:" + response.StatusCode); } } } // 自定义HttpClientFactory 类,用于创建带有代理的HttpClient public class HttpClientFactory : FlurlHttp.IFlurlHttpClientFactory { private readonly WebProxy _proxy; public HttpClientFactory(WebProxy proxy) { _proxy = proxy

    64810编辑于 2024-09-02
  • 来自专栏算法修养

    HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?

    所以临时解决方式是使用静态的 HttpClient 对象,No Dispose No Time_Wait 后来在 .net core2.1 中,引入了 HttpClientFactory 来解决这一问题 连接的操作都由 HttpClientFactory 来用一种良好的机制去解决。 因为我在实际生产环境中,无论使用静态的 HttpClient 还是使用 HttpClientFactory ,在高并发下的情况下 Tcp 连接都陡然上升。 那么 静态的HttpClient 和 HttpClientFactory 的二者使用,哪个性能更好呢? 我认为是前者,在高并发的实验过程中也确实如此。 但是 静态HttpClient 有个DNS 解析无法更新的硬伤,所以还是应该 使用HttpClientFactory

    1.2K10发布于 2018-12-05
领券