我介绍了ASP.NET 2.1核心的新方式等中描述的在我的应用程序中创建/注册HTTP客户端在这里。在我需要向键入的 HTTP 客户端添加客户端证书之前,它一直运行良好。我做了很多研究,但我没有找到一种方法来做到这一点..我期待这样的事情:services.AddHttpClient<IMonitoringService, MonitoringService>( client => { client.BaseAddress = new Uri(this.Configuration.GetSection("ServiceEndpoints:Monitoring").Get<ServiceEndpointConfiguration>().Endpoint); client.ClientCertificates.Add(new X509Certificate2(/* ... */)); // Error: `ClientCertificates` doesn't exists. });或者像这样:services.AddHttpClient<IMonitoringService, MonitoringService>( client => client.BaseAddress = new Uri(this.Configuration.GetSection("ServiceEndpoints:Monitoring").Get<ServiceEndpointConfiguration>().Endpoint)) .AddHttpMessageHandler( () => { var handler = new HttpClientHandler(); handler.ClientCertificates.Add(new X509Certificate2(/* ... */)); return handler; // Error: Expected return type is `DelegatingHandler`. });但是这种方式不存在..有没有办法做到这一点?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
您的经验是正确的AddHttpMessageHandler
,DelegatingHandler
因为此函数用于扩展请求管道,因此需要返回类型。为了创建HttpClientHandler
附加了客户端证书的 ,您应该使用ConfigurePrimaryHttpMessageHandler
来创建和返回 的配置实例HttpClientHandler
。
- 1 回答
- 0 关注
- 159 浏览
添加回答
举报
0/150
提交
取消