I'm working on an ASP.NET Core 5.0 project which has a service that accesses an API. Based on the code below, I'd expect the HttpClient supplied to ToornamentService's constructor to contain the declared BaseAddress and API key header.
However, when debugging, I noticed that the HttpClient never has either of those. BaseAdress is null, and the header is missing. I've tried using an IHttpClientFactory instead of the typed client, but I end up with the same result.
What am I doing wrong?
ConfigureServices Method:
public void ConfigureServices(IServiceCollection services)
{
//Omitted for brevity
services.AddHttpClient<ToornamentService>(c =>
{
c.BaseAddress = new Uri("https://api.toornament.com/");
c.DefaultRequestHeaders.Add("X-Api-Key", Configuration["Toornament:ApiKey"]);
});
services.AddTransient<ToornamentService>();
}
ToornamentService class:
public ToornamentService(HttpClient client)
{
Client = client; // client.BaseAddress here is null
}