gpt4 book ai didi

c# - 如何在 core2.1 中使用 WinHttpHandler 和 IHttpClientFactory?

转载 作者:行者123 更新时间:2023-11-30 15:54:15 27 4
gpt4 key购买 nike

我正在尝试将新的 IHttpClientFactory 与 ASP.net Core 2.1 WEB API 应用程序一起使用。

public void ConfigureServices(IServiceCollection services)
{
// other services configuration
services.AddHttpClient();
}

在我的 ConfigureServices 方法中,我没有看到添加 IHttpClientFactory 并将其配置为使用 WinHttpHandler 的方法。

返回 IHttpClientBuilderAddHttpClient 方法使您可以访问配置 HttpMessageHandler 的方法,但这些方法必须从 派生DelegatingHandlerWinHttpHandler 不是从 DelegatingHandler 派生的。

没有办法告诉 HttpClient 在构造时使用 WinHttpHandler

最佳答案

想通了。

感谢@Nkosi 在评论中给出的提示!

我通过在注册 HttpClient 服务时使用命名的 HttpClient 解决了这个问题,然后将消息处理程序配置为使用 WinHttpHandler 作为 PrimaryHandler

services.AddHttpClient<HttpClient>("WinHttp")
.ConfigureHttpMessageHandlerBuilder(c =>
{
c.PrimaryHandler = new WinHttpHandler() { WindowsProxyUsePolicy = WindowsProxyUsePolicy.UseWinInetProxy };
});

然后在使用 IHttpClientFactory 时,指定您在注册时提供的名称。

var httpClient = this._httpClientFactory.CreateClient("WinHttp");

您的 HttpClient 现在将使用 WinHttpHandler!

注意要使用 WinHttpHandler,您必须添加 nuget 包 System.Net.Http.WinHttpHandler

关于c# - 如何在 core2.1 中使用 WinHttpHandler 和 IHttpClientFactory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50762087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com