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

    IHttpClientFactory添加动态命名配置

    某些时候我们需要为HttpClient动态配置一些东西, 例如证书等, 参考博问 如何使用IHttpClientFactory动态添加cer证书. 针对如何为HttpClient对象添加证书, 官方文档的实现是:使用证书和来自 IHttpClientFactory 的命名 HttpClient 实现 HttpClient 和 使用证书和 HttpClientHandler IHttpClientFactory.CreateClient是如何将HttpClient创建出来的? 使用 至于用它就简单了 var factory = ServiceProvider.GetService<IHttpClientFactory>(); var httpClientForBaidu = 另外,有关IHttpClientFactory背后的故事可以查看文章Exploring the code behind IHttpClientFactory in depth, 很完整的流程图在配上代码

    1K20发布于 2021-06-21
  • 来自专栏嘿dotNet

    Asp.net Core Flurl.Http 结合IHttpClientFactory管理HttpClient生命周期

    不过它因为出现的比较早,并没有使用asp.net core中的IHttpClientFactory 管理HttpClient实例,而是自己管理。 一般是根据host来缓存一个HttpClient实例,比如你请求所有的https://www.baidu.com/ 都用一个缓存的实例,这样可能会有些问题,比如Dns更新等; 对于我们有着用IHttpClientFactory services.AddHttpClient(); //... } 使用 private readonly IFlurlClient _flurlClient; public CommonController(IHttpClientFactory

    1.2K20发布于 2021-08-05
  • 来自专栏大内老A

    ASP.NET Core 6框架揭秘实例演示:利用IHttpClientFactory工厂来创建HttpClient

    在一个采用依赖注入框架的应用中,我们一般不太推荐利用手工创建的HttpClient对象来进行HTTP调用,使用的HttpClient对象最好利用注入的IHttpClientFactory工厂来创建。 IHttpClientFactory类型由“Microsoft.Extensions.Http”这个NuGet包提供,“Microsoft.NET.Sdk.Web”SDK具有该包的默认引用。 工厂创建HttpClient对象 引入IHttpClientFactory工厂将会使一切变得简单,我们只需要在需要进行HTTP调用的时候利用这个工厂创建出对应的HttpClient对象就可以了。 在下面的演示程序中,我们调用ServiceCollection对象的AddHttpClient扩展方法对IHttpClientFactory工厂进行了注册,并利用构建出来的IServiceProvider 在每次进行HTTP调用的时候,我们利用这个IHttpClientFactory工厂实时地将HttpClient对象创建出来。

    1.2K20编辑于 2022-05-09
  • 来自专栏大内老A

    ASP.NET Core 6框架揭秘实例演示[18]:HttpClient处理管道

    在《利用IHttpClientFactory工厂来创建HttpClient》之后,我们将关注点放到HttpClient对象上。 = new ServiceCollection() .AddHttpClient() .BuildServiceProvider() .GetRequiredService<IHttpClientFactory [S1209]定制HttpClient管道 对于任何一个由IHttpClientFactory工厂创建的HttpClient对象来说,除了位于管道末端作为主处理器的HttpClientHandler可以替换之外 图2 定制处理器管道 [S1210]针对HTTP调用的日志输出(>=Information) 对于由IHttpClientFactory工厂创建的HttpClient来说,它的处理器管道总是包含两个与日志相关的处理器 在利用IHttpClientFactory工厂将HttpClient对象创建出来后,我们用它向地址“http://www.baidu.com”发送了一个GET请求。

    80440编辑于 2022-05-09
  • 来自专栏.Net Core 技术栈

    .net core HttpClient 使用之掉坑解析(一)

    一、前言 在我们开发当中经常需要向特定URL地址发送Http请求操作,在.net core 中对httpClient使用不当会造成灾难性的问题,这篇文章主要来分享.net core中通过IHttpClientFactory .net core 2.1 开始引入了IHttpClientFactory 工厂类来自动管理IHttpClientFactory 类的创建和资源释放,可以通过Ioc 注入方式进行使用,代码如下: services.AddControllers (); services.AddHttpClient(); 调用代码如下: private readonly IHttpClientFactory _clientFactory; public FirstController (IHttpClientFactory clientFactory) { _clientFactory = clientFactory; } ///

    /// /// </ </returns> public static HttpClient CreateClient(this IHttpClientFactory factory) { if (factory

    1.2K50编辑于 2022-04-07
  • 来自专栏DotNet NB && CloudNative

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

    注入 HttpClientFactory 并调用 API 在服务或控制器中注入 IHttpClientFactory 实例,并使用它发送请求: public class MyService { private readonly IHttpClientFactory _clientFactory; public MyService(IHttpClientFactory

    87110编辑于 2024-12-05
  • 来自专栏AI.NET极客圈

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

    每次调用 IHttpClientFactory.CreateClient() 时,会返回一个新的 HttpClient 实例,但这些实例共享底层的 HttpMessageHandler 池。 IHttpClientFactory 的默认实现是 DefaultHttpClientFactory,它被注册为单例服务。 () 创建 HttpClient 实例,适用于简单的场景: public classMyService { privatereadonly IHttpClientFactory _clientFactory ; public MyService(IHttpClientFactory clientFactory) { _clientFactory = clientFactory _clientFactory; public MyService(IHttpClientFactory clientFactory) { _clientFactory

    71210编辑于 2025-07-04
  • 来自专栏科控自动化

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

    } public class ElectricMeterService : IElectricMeterService { private readonly IHttpClientFactory ; public ElectricMeterService( IHttpClientFactory httpClientFactory, ILogger 还需要调用 AddHttpClient 方法注册 IHttpClientFactory

    55330编辑于 2022-12-20
  • 来自专栏精益码农

    三张大图剖析HttpClient和IHttpClientFactory在DNS解析问题上的殊途同归

    ASP.NETCore IHttpClientFactory缓存工厂 曲线救国 IHttpClientFactory 充分体现了“计算机领域的任何问题都可以通过增加一个间接的中间层来解决” 这一方法论。 为解决重用HttpClient引起的DNS解析副作用,IHttpClientFactory对实际使用的核心HttpClienthandler开启了缓存工厂模式,在外侧尝试跟踪并控制Handler的存活周期 在使用层面, IHttpClientFactory并非直接管控连接池连接,而是在外层对Handler做存活缓存,故工厂对外只提供了SetHandlerLifetime(TimeSpan.FromMinutes IHttpCLientFactory 工厂除了具备 “通过管理HttpClientHandler实例的缓存生存期,避免手动管理 HttpClient 生存期时出现的DNS问题”, 还具有 HttpClient .NET Core 2.1的思路是增强HttpClient库底层的连接池能力,提供了SocketsHttpHandler来控制连接的生命周期, IHttpClientFactory的思路是绕过HttpClient

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

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

    builder.Services.AddTransient<IKernel>((services) => { var httpClientFactory = services.GetRequiredService<IHttpClientFactory AddSingleton<OpenAIChatCompletion>((services) => { var httpClientFactory = services.GetRequiredService<IHttpClientFactory skprompt.txt则是当前插件使用的prompt 加载插件 在这里我们注入了IKernel private readonly IKernel _kernel; private readonly IHttpClientFactory = new List<AdCode>(); } private readonly IHttpClientFactory _httpClientFactory; public WeatherPlugin(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory

    53920编辑于 2023-10-22
  • 来自专栏饭勺oO的技术博客

    asp.net core之HttpClient

    app.MapControllers(); app.Run(); private readonly ILogger<WeatherForecastController> _logger; private readonly IHttpClientFactory _httpClientFactory; public WeatherForecastController(ILogger<WeatherForecastController> logger, IHttpClientFactory response.Content.ReadAsStringAsync(); Console.WriteLine(responseBody); } 这里也可以选择直接注入HttpClient实例而不是IHttpClientFactory 需要注意的是,我们不再使用using语句来包裹HttpClient,而是通过依赖注入的方式获取HttpClient实例或IHttpClientFactory。 在控制器中注入IExampleService: private readonly ILogger<WeatherForecastController> _logger; private readonly IHttpClientFactory

    93620编辑于 2023-10-18
  • 来自专栏AI.NET极客圈

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

    针对HttpClientFactory的处理涉及到IHttpClientBuilder、IHttpClientFactory、IHttpMessageHandlerFactory、ITypedHttpClientFactory services.AddHttpClient() 我们在创建或者配置HttpClient对象的时候,会在ConfigureServices方法中增加services.AddHttpClient(),即可注册IHttpClientFactory DefaultHttpMessageHandlerBuilder>(); 12: services.AddSingleton<DefaultHttpClientFactory>(); 13: services.TryAddSingleton<IHttpClientFactory 它继承了IHttpClientFactory、IHttpMessageHandlerFactory这两个接口。由此可见,DefaultHttpClientFactory实例的创建被拆成了两种行为。 IHttpClientFactory的定位是一个抽象工厂,可以为指定名称的HttpClient实例创建自定义配置,它只有一个方法,HttpClient CreateClient(string name)

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

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

    HttpClientFactory简单使用 Startup添加 services.AddHttpClient(); 通过IHttpClientFactory创建一个HttpClient对象,后面操作如旧 [ApiController] public class ValuesController : ControllerBase { private readonly IHttpClientFactory _httpClientFactory; public ValuesController(IHttpClientFactory httpClientFactory) {

    1.3K20发布于 2020-03-13
  • 来自专栏DotNet程序园

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

    HttpClientFactory简单使用 Startup添加 Copy services.AddHttpClient(); 通过IHttpClientFactory创建一个HttpClient对象,后面操作如旧 [ApiController] public class ValuesController : ControllerBase { private readonly IHttpClientFactory _httpClientFactory; public ValuesController(IHttpClientFactory httpClientFactory) {

    1.1K10发布于 2019-09-24
  • 来自专栏大内老A

    四种为HttpClient添加默认请求报头的解决方案

    httpClient.DefaultRequestHeaders.Add("x-www-baz", "789"); } } 第二种方式 对于.NET Core应用来说,我们更推荐的做法是采用依赖注入的方式,利用IHttpClientFactory var httpClient = services .BuildServiceProvider() .GetRequiredService<IHttpClientFactory

    1.2K30发布于 2019-09-29
  • 来自专栏雪雁的专栏

    Asp.Net Core中HttpClient的使用方式

    Route("api/[controller]")] [ApiController] public class HttpClientController : ControllerBase { IHttpClientFactory _httpClientFactory; public HttpClientController(IHttpClientFactory httpClientFactory) {

    1.6K20发布于 2019-03-11
  • 来自专栏全球技术精选

    在.NET Core 中实现健康检查

    public class ApiHealthCheck : IHealthCheck { private readonly IHttpClientFactory _httpClientFactory ; public ApiHealthCheck(IHttpClientFactory httpClientFactory) { _httpClientFactory =

    1.3K10发布于 2021-02-19
  • 来自专栏DotNet NB && CloudNative

    精:在 .NET 8中使用 Polly 处理瞬态故障

    然后在 RequestController 中使用 ClientPolicy: private readonly ClientPolicy _clientPolicy; private readonly IHttpClientFactory _clientFactory; public RequestController(ClientPolicy clientPolicy, IHttpClientFactory clientFactory StatusCode(StatusCodes.Status500InternalServerError); } 由于我们在 Program.cs 中为命名的 Http 客户端配置了策略,因此可以直接使用 IHttpClientFactory

    1.2K10编辑于 2024-12-10
  • 来自专栏.Net Core 技术栈

    .net core HttpClient 使用之消息管道解析(二)

    HttpClientFactoryOptions对象源代码,如下: ///

    /// An options class for configuring the default <see cref="<em>IHttpClientFactory</em> summary> /// <remarks> /// <para> /// The default implementation of <see cref="IHttpClientFactory summary> /// <para> /// Gets or sets a value that determines whether the <see cref="<em>IHttpClientFactory</em> </para> /// </summary> /// <remarks> /// <para> /// The <see cref="IHttpClientFactory /// /// <remarks> /// The <see cref="Name"/> is set by the <see cref="<em>IHttpClientFactory</em>

    92711编辑于 2022-04-07
  • 来自专栏架构师高级俱乐部

    .NetCore 2.1以后的HttpClient最佳实践

    services.AddHttpClient(); services.AddScoped(typeof(ClassInService));//此处无关HttpClient,请暂时忽视他 在幕后,这将注册一些必需的服务,其中一个是IHttpClientFactory /// /// <param name="clientFactory"></param> public ClassInService(IHttpClientFactory x-www-form-urlencoded"); var response = client.PostAsync("MyBlogUrl", content); } 这里我们首先添加对IHttpClientFactory IHttpClientFactory允许我们请求和接收HttpClient实例。 我们使用HttpClientFactory创建客户端。

    1.4K20编辑于 2022-04-27
领券