问题标签 [httpclientfactory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
922 浏览

c# - GetDiscoveryDocumentAsync 失败,IdentityServer4 客户端

我有一个帮助类来从 IdentityServer4 获取访问令牌。这是代码:

上面代码的目的是获取用户资源密码流的访问令牌。最近,有人从

通过此更改,我们偶尔会遇到一些错误。代码功能在生产服务器中。每小时可能有数千个 api 调用。这是错误消息:

GetUserTokenResponseAsync: GetDiscoveryDocumentAsync failed

有人可以解释这个简单的变化引起的问题是什么吗?

0 投票
2 回答
429 浏览

xamarin.forms - AddRefitClient DryIoc 和 IServiceProvider 在 Prism 上用于 Xamarin.Forms

我正在尝试在 Xamarin.Forms (DryIoc.Microsoft.DependencyInjection) 上关注 Prism 上的 DryIoc 和 IServiceProvider但是我正在使用 RefitClientIHttpClientFactory

我已经添加了

protected override IContainerExtension CreateContainerExtension() => PrismContainerExtension.Current;

当我尝试向 IMyApi 提出请求时。

0 投票
1 回答
3205 浏览

c# - .Net Core HttpClientFactory 用于多种 API 服务

我有一个 .Net Core 项目需要连接到大约 4 个不同的 API 服务,我不是任何 HttpClient 代码的专家,但据我发现,您通常只想重用一个实例你的 HttpClient 的。据我所知,普遍的共识是在.Net Core 中使用 HttpClientFactory,方法是在 Startup 类中注册它,然后使用 DI 请求它。

现在,除了 BaseAddress url 之外,我的大多数默认标头等通常都相同,当连接到 4 个 diff API 服务时,我应该如何处理?我应该注册 4 个不同的命名客户端还是让一个客户端预先设置所有默认信息,然后根据需要手动配置它,例如配置地址?

一般问题是因为我对此很陌生,据说可以重复使用 HttpClient 的一个实例。

  1. 如果我为每个 API 服务创建 4 个不同的命名客户端,当我调用 .CreateClient() 方法时,这不会创建 4 个 HttpClient 实例吗?
  2. .CreateClient() 每次调用时都会创建一个新实例,如果说我需要对一个 API 服务进行 3 次不同调用,这是否会破坏拥有一个 HttpClient 实例的目的,每个调用都会调用 . CreateClient() 建立某种连接,这将创建 3 个 HttpClient 实例?

任何帮助澄清将不胜感激,

谢谢!

0 投票
2 回答
5133 浏览

.net-core - 如何使用 IHttpClientFactory 在 Blazor Server 中配置 HttpClient 基地址

我正在尝试使用在服务器中配置HttpClient的基地址,但出现运行时异常:BlazorIHttpClientFactory

异常截图

任何人都知道这里可能是什么问题?

0 投票
1 回答
508 浏览

asp.net-core - 在具有 .net core 3.1 和 .net framework 4.7.2 的项目中使用 httpclientfactory

我将旧的 CMS 从 WebForms .Fet 框架升级到 .net 核心。我从实现 httpclientfactory 的前端开始。

在我升级后端之前,我想在 .net 核心和 .net 框架解决方案上使用相同的数据层,但我很困惑如何在我的 WebForms 解决方案中实现它

在可以从 webforms 和 .net 核心访问的 API 帮助程序类中,我实现了以下内容:

获取数据的功能是:

在 .net 核心解决方案上,我初始化 HttpClientFactory,如下所示:

在 net core 解决方案 og 中初始化 IHttpClientFactory

我得到的数据如下:

我在我的 WebForms 应用程序中完成了以下操作:

已安装

将以下内容添加到 global.asax

问题是,如何将 httpclientfactoryclient 注入到我的 WebForms 应用程序中,以便可以像在 .net 核心解决方案中一样使用 _webSite.GetSingle(1)

0 投票
1 回答
428 浏览

c# - CS1929“IHttpClientFactory”不包含“GetFromJsonAsync”的定义

我在 Blazor Server 项目的 Razor 组件页面 Index.razor 上收到消息“CS1929 - 'IHttpClientFactory' 不包含 'GetFromJsonAsync' 的定义”。我正在尝试发出 http 请求以将组件连接到数据库。

下面是 index.razor 中的代码:

我在 Startup.csservices.AddHttpClient();下添加了这一行public void ConfigureServices(IServiceCollection services)

错误在字httpClientFactoryasync Task LoadPeople() => people = await httpClientFactory.GetFromJsonAsync<Person[]>

我什至尝试将其替换为以下内容,但这只会导致更多错误,因此我将其删除:

解决此问题的最佳方法是什么?每次在尝试连接 http 时设法修复旧问题时,我都会遇到新问题。

0 投票
3 回答
3271 浏览

c# - 类型化 HttpClient 与 IHttpClientFactory

下面2个设置HttpClient的场景有什么区别吗?

我应该更喜欢一个吗?

打字客户端:

IHttpClientFactory:

0 投票
0 回答
78 浏览

timeout - 开始处理 HTTP 请求 POST 后 ASP.NET Core 3.1 错误超时

我在 HttpClientFactory 的“开始处理 HTTP 请求 POST”之后出现超时异常,该消息何时准确发生,是在调用服务器之前还是之后?

0 投票
2 回答
447 浏览

c# - 如何在 Typed HttpClient 示例中实现 IHttpFactoryClient?

在我看到的每个示例中,包括 Microsoft 的herehereIHttpClientFactory ,作者都解释了over所做的改进,HttpClient并举例说明了如何简单地开箱即用或以命名形式使用它。但是他们似乎都提到,使用 Typed 表单确实最适合它的结构、可用性等。这些原因对我们的用例有意义。

IHttpClientFactory尽管与上面提供的链接一样,在创建类型HttpClient(或作为客户端的服务)的过程中,没有任何一行代码实例化、注入或使用。您创建类型化客户端:

然后在某个模型或控制器中使用它:

我非常困惑。我的团队最初在尝试模拟(使用 Moq)Typed 客户端进行单元测试时遇到了障碍,我们在获得了许多重要资源后得出的结论是,使用IHttpClientFactory. 但我还没有找到一个明确使用IHttpClientFactoryTyped 客户端的示例。

0 投票
0 回答
57 浏览

c# - 为什么我用 DelegatingHandler 丢失了我的 DefaultRequestHeaders?

我有一个DefaultRequestHeaders在配置级别添加的命名客户端,如下所示:

添加到客户端的是一个DelegatingHandler. 当我逐步完成 ValidateHeaderHandler 中的覆盖时,它继承自 DelegatingHandler:

仅在第一次尝试时,标头才会包含“授权”base.SendAsync()。执行之后,如果 Polly 的重试策略被触发,ValidateHeaderHandler 的覆盖SendAsync将再次执行 - 正如预期的那样 - 但所有标头信息都完全消失了。