我正在构建一个API,该API公开一个POST端点,该端点接受请求中包含映射到uris的键的环境详细信息。然后,此API将根据传递的请求数据将POST请求发送到其他API。
到现在为止,客户端的基本uri是静态的,现在uri是动态的,并且是从传入请求传递过来的。
通过构造函数注入时,HttpClient内置在Service类中。
如何在构造函数已构建的客户端上添加CredentialsCache,并从启动到按需请求移动逻辑?
当前使用扩展方法在启动时注册
public static IServiceCollection AddUnderTest(this IServiceCollection services, ClientA settings)
{
var client = services
.AddHttpClient(
nameof(ClientA),
c => { c.DefaultRequestHeaders.Add("Cache-Control", "no-cache"); });
client.ConfigurePrimaryHttpMessageHandler(
handler => new HttpClientHandler
{
Credentials = new CredentialCache { {
new Uri(""),
"Digest",
new NetworkCredential(settings.Username, settings.Password) } }
});
return services;
}
服务舱
public class MyService
{
public MyService(IHttpClientFactory htpClientFactory)
{
var myClient = htpClientFactory.CreateClient("ClientA");
//add digest auth and credentials here, and not on startup
}
}
如何在启动时添加与扩展名methon中相同的配置?