httpclientfactory相关内容

如何使用HttpClient从IHttpClientFactory向请求添加Cookie

背景 我正在开发一个ASP.NET Core Web API,其中我们在API中调用第三方API。此第三方API要求每个请求都包含带有访问令牌的Cookie。我们的API从声明(从与请求相关联的用户的ClaimsPrincipal)获取该令牌。 详细信息 This answer显示如何在请求上设置cookie,但该示例需要手动构造HttpClient(以便能够使用CookieContai ..
发布时间:2022-09-05 17:39:17 C#/.NET

如何在.Net Core API项目中跨多个线程限制对HttpClient的所有传出异步调用

我正在设计一个.Net核心Web API,它使用一个我不能控制的外部API。我找到了一些关于堆栈溢出的很好的答案,它们允许我在同一线程中使用信号量来限制对这个外部API的请求。我想知道如何最好地将这种限制扩展到应用程序范围,而不是只针对特定的任务列表进行限制。我一直在学习HttpMessageHandler,这似乎是拦截所有传出消息并应用节流的一种可能方式。但我担心的是我可能不理解的线程安全和锁定 ..

如何使用 IHttpClientFactory 刷新令牌

我使用 IHttpClientFactory 来发送请求和接收来自两个使用 Net Core 2.2 的外部 API 的 HTTP 响应. 我正在寻找一种使用已存储在 appsettings.json 中的刷新令牌来获取新访问令牌的好策略.当前请求返回 403 或 401 错误时需要请求新的访问令牌,当获得新的访问和刷新令牌时,需要使用新值更新 appsettings.json 以便在后续请 ..
发布时间:2021-12-10 20:06:56 C#/.NET

配置 HttpClientFactory 以使用来自当前请求上下文的数据

使用 ASP.NET Core 2.1 中的新 HttpClientFactory,它是使用基本网址、默认标头等内容配置自定义 HTTP 客户端非常容易. 但是,我还没有找到一种集中配置的方法,可以让我从当前请求上下文中注入标头.例如,考虑使用 Authorization 标头调用的服务,我也希望将其传递给所有底层服务.能够在 Startup 类中对 services 的 .AddHttpC ..
发布时间:2021-11-28 23:34:38 C#/.NET

如何使用 Moq 在 .NET Core 2.1 中模拟新的 HttpClientFactory

.NET Core 2.1 附带了这个名为 HttpClientFactory 的新工厂,但我不知道如何模拟它以对一些包括 REST 服务调用的方法进行单元测试. 工厂正在使用 .NET Core IoC 容器注入,该方法的作用是从工厂创建一个新客户端: var client = _httpClientFactory.CreateClient(); 然后使用客户端从 REST 服务中获取 ..
发布时间:2021-11-28 23:34:04 C#/.NET

是否应该处理由 HttpClientFactory 创建的 HttpClient 实例?

因此,我在 Startup.cs 中使用服务集合注册了一个命名客户端: services.AddHttpClient(someServiceName,客户 =>client.BaseAddress = baseAddress); 现在可以从我的服务提供商处注入一个 IHttpClientFactory. 使用这个 IHttpClientFactory,我想出了一个客户端实例: var ..

如何在DelegatingHandler中读取发送到操作方法(WebAPI)的参数

我正在使用IHttpClientFactory发送请求和使用Net Core 2.2从外部API接收HTTP响应. 我已经实现了DelegatingHandler来“拦截"我的http请求并添加Authorization标头(令牌).如果令牌无效,它将获取一个新令牌,然后重试一次. 同样,当我第一次获得新令牌时,我将令牌缓存在内存中以供进一步参考.为了缓存令牌,我创建了一个字典,该字典 ..
发布时间:2020-07-23 05:42:46 C#/.NET

如何使用IHttpClientFactory刷新令牌

我正在使用IHttpClientFactory发送请求和使用Net Core 2.2从两个外部API接收HTTP响应. 我正在寻找一种很好的策略,以使用存储在appsettings.json中的刷新令牌来获取新的访问令牌.当前请求返回403或401错误时,需要请求新的访问令牌.获得新的访问和刷新令牌后,需要用新值更新appsettings.json以便在后续请求中使用. 我正在使用两个 ..
发布时间:2020-07-23 05:40:36 C#/.NET