【发布时间】:2019-05-13 14:08:36
【问题描述】:
我正在尝试使用网站 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 请求似乎是在没有池用户的情况下发出的,尽管有文档..
有人做过这样的事吗?
【问题讨论】:
-
改用什么身份?
-
Myothersite 收到匿名电话。它与 .Net 4.7 配合得很好,我绝对看不到我缺少什么......
-
根据this HttpClientHandler 不再是 .NET Core 2.1 的默认实现。除非您设置显式开关,否则不会使用它。
-
感谢您的提示!不幸的是,我无法使用 SocketsMessageHandler 使其工作。刚刚在这里问:github.com/dotnet/corefx/issues/37665
-
您是否尝试通过设置上下文切换来强制它使用 HttpClientHandler ?
标签: c# .net-core asp.net-core-2.2