using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
private const string ClientName = "TestClient";
private const string HeaderKey = "AuthToken";
public static async Task Main()
var collection = new ServiceCollection();
collection.AddHttpClient(ClientName, (sp, client) =>
client.DefaultRequestHeaders.Add(HeaderKey, GetToken());
var provider = collection.BuildServiceProvider();
for(int i = 0; i < 5; i++)
await Task.Delay(Random.Shared.Next(1000));
public static void Test(IServiceProvider sp)
var factory = sp.GetRequiredService<IHttpClientFactory>();
var client = factory.CreateClient(ClientName);
var token = client.DefaultRequestHeaders.GetValues(HeaderKey).First();
Console.WriteLine($"Token: {token}");
client.DefaultRequestHeaders.Remove(HeaderKey);
client.DefaultRequestHeaders.Add(HeaderKey, GetToken());
private static string GetToken() => DateTime.UtcNow.TimeOfDay.ToString();