Is there a way to add a handler to all clients created by the IHttpClientFactory? I know you can do the following on named clients:
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
});
But I don't want to use named clients I just want to add a handler to all clients that are given back to me via:
clientFactory.CreateClient();
When you use CreateClient
with no parameters, you implicitly request a named client, where the name is Options.DefaultName
(string.Empty
). To affect this default instance, specify Options.DefaultName
when calling AddHttpClient
:
services.AddHttpClient(Options.DefaultName, c =>
{
// ...
}).ConfigurePrimaryHttpMessageHandler(() =>
{
// ...
});
Tobias J notes in the comments that the API docs for AddHttpClient
states the following:
Use DefaultName as the name to configure the default client.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With