Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

120
Views
HttpClient properties not being passed with DI

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
    }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Remove this line: services.AddTransient<ToornamentService>();

When you call AddHttpClient, it injects the service for you as transient.

So what you are doing is injecting it twice. And since your transient injection is the last injection, that takes precedence over the AddHttpClient injection.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!