dotnet-httpclient相关内容

可以为我的应用程序需要与之通信的每个主机使用一个 HttpClient 实例吗?

我知道,在使用 Microsoft 依赖注入容器时,处理 HttpClient 实例的最佳做法是使用 IHttpClientFactory 接口 由 Microsoft.Extensions.Http nuget 包. 不幸的是实现了IHttpClientFactory 接口的类 不是公开的 (正如您可以在此处验证),因此利用此模式的唯一方法是使用 Microsoft 依赖项注入容器(至少它 ..
发布时间:2021-11-24 15:42:21 C#/.NET

我应该缓存和重用从 HttpClientFactory 创建的 HttpClient 吗?

我们可以在这里阅读您使用的 HTTP 客户端有误,这正在破坏您的稳定软件我们不应该为每个http请求创建和处理HttpClient.相反,它应该被缓存和重用(例如作为 DI 容器中的单例).同样在 HttpClient: HttpClient 旨在实例化一次并在应用程序的整个生命周期中重复使用.为每个请求实例化一个 HttpClient 类将耗尽重负载下可用的套接字数量.这将导致 Socke ..
发布时间:2021-11-24 15:27:40 C#/.NET

使用特定的 HttpMessageHandler 注入单个实例 HttpClient

作为我正在处理的 ASP.Net Core 项目的一部分,我需要从我的 WebApi 中与许多不同的基于 Rest 的 API 端点进行通信.为了实现这一点,我使用了许多服务类,每个类都实例化一个静态 HttpClient.基本上,我为 WebApi 连接到的每个基于 Rest 的端点都有一个服务类. 下面是如何在每个服务类中实例化静态 HttpClient 的示例. 私有静态HttpCl ..
发布时间:2021-11-24 15:09:57 C#/.NET

是否可以让 HttpClient 在响应中忽略无效的 ETag 标头?

我正在开发一个应用程序,该应用程序使用 HttpClient API 向我无法控制的第三方服务发出 Web 服务请求.根据 HTTP 规范,该服务似乎使用包含无效值的 ETag HTTP 标头响应请求(该值未用引号括起来).这会导致 HttpClient 以 System.FormatException 失败. 在这种情况下,我对 ETag 标头不感兴趣,希望能够忽略无效值.是否可以使用 H ..
发布时间:2021-11-24 14:42:11 C#/.NET

如何在 dotnet core 中将动态对象序列化为 JSON 字符串?

我正在将 JSON 有效负载传递给 API 控制器,其中一个字段是动态的,因为该字段需要作为 JSON 字符串再次传递给另一个 API.dotnet core 3.1 中间层不应该关心打字,因为有效载荷会改变. 这是传入 API 控制器的对象: 公共类 GitHubAction{[JsonProperty("标题")]公共字符串标题{获取;放;}[JsonProperty("启用")][ ..
发布时间:2021-11-24 14:28:52 C#/.NET

HttpClient、UseDefaultCredentials、Windows 身份验证、.NET Core 2.0+ 控制台应用程序收到 401 Unauthorized

我正在尝试从 .NET Core 3.0 控制台应用程序进行 HTTP GET 调用.端点需要 Windows 身份验证.端点是 IIS 上的一个生产中的 .NET Framework 4.5.2 Web API 服务,已被多个客户端应用程序成功使用. 我的测试程序针对 net45 框架目标成功.相比之下,netcoreapp3.0 构建收到 401 Unauthorized. 这是我 ..
发布时间:2021-11-24 13:52:20 C#

使用 .NET 4.6.2 中的 HttpClientFactory

我有一个 .NET 4.6.2 控制台应用程序(使用 Simple Injector).我需要调用 HTTP 服务.直接使用 HttpClient 遇到问题后,我正在尝试使用 HttpClientFactory ( https://github.com/aspnet/HttpClientFactory ) 代替. 项目/库是 .NET Standard 2.0 所以它应该??在 .NET 4 ..
发布时间:2021-11-24 12:41:42 C#

将客户端证书添加到 .NET Core HttpClient

我正在尝试使用 .NET Core 并构建一个利用支付 API 的 API.有一个客户端证书需要添加到双向 SSL 身份验证的请求中.如何在 .NET Core 中使用 HttpClient 实现这一点? 我查看了各种文章,发现 HttpClientHandler 没有提供任何添加客户端证书的选项. 解决方案 像这样在 Main() 中进行所有配置: public static v ..
发布时间:2021-11-24 12:11:10 C#/.NET

未通过 DI 传递 HttpClient 属性

我正在开发一个 ASP.NET Core 5.0 项目,该项目具有访问 API 的服务.根据下面的代码,我希望提供给 ToornamentService 的构造函数的 HttpClient 包含声明的 BaseAddress 和 API 密钥标头. 然而,在调试时,我注意到 HttpClient 从来没有这些.BaseAdress 为空,并且缺少标头.我曾尝试使用 IHttpClientFa ..