是否可以向IHttpClientFactory创建的所有客户端添加处理程序?我知道您可以在指定的客户端上执行以下操作:
services.AddHttpClient("named", c =>
{
c.BaseAddress = new Uri("TODO");
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
c.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue
{
NoCache = true,
NoStore = true,
MaxAge = new TimeSpan(0),
MustRevalidate = true
};
}).ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
{
AllowAutoRedirect = false,
AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
});
但是我不想使用命名客户端,我只想向通过以下方式返回给我的所有客户端添加处理程序:
clientFactory.CreateClient();
答案 0 :(得分:2)
在不使用任何参数的情况下使用CreateClient
时,您implicitly请求一个命名客户端,其名称为Options.DefaultName
(string.Empty
)。要影响此默认实例,请在调用Options.DefaultName
时指定AddHttpClient
:
services.AddHttpClient(Options.DefaultName, c =>
{
// ...
}).ConfigurePrimaryHttpMessageHandler(() =>
{
// ...
});