我正在尝试使用网站A的身份从网站A到网站B进行http呼叫。
使用.net fwk 4.x,我只需要做类似的事情:
using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }) {
// Do something
}
在aspnetcore 2.2中,提供了一个IHttpClientBuilder来管理http客户端。
同一代码应该看起来像这样:
services.AddHttpClient("myOtherSite", httpClient => {
httpClient.BaseAddress = new Uri("http://something");
})
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler {
UseDefaultCredentials = true
});
然后,我只需要在需要客户端的地方注入IHttpBuilder,然后调用clientBuilder.buildClient(“ myOtherSite”)。
使用此方法,尽管有文档说明,http请求似乎是在没有池用户的情况下发出的。
有人做了这样的事情吗?
答案 0 :(得分:1)
我不确定这是否是您的问题,但是此Microsoft Documentation指出从核心2.1开始,将使用System.Net.Http.SocketsHttpHandler
类。
它包含有关如何配置以允许继续使用HttpClientHandler
的信息,但是您可能希望切换甚至尝试使用HttpMessageHandler
来代替当前用于处理程序的类型。< / p>