title: What is the overhead of creating a new HttpClient per call in a WebAPI client?
body: <p>What should be the <code>HttpClient</code> lifetime of a WebAPI client?<br/>
   Is it better to have one instance of the <code>HttpClient</code> for multiple calls?</p>
  
  <p>What's the overhead of creating and disposing a <code>HttpClient</code> per request, like in example below (taken from <a href="http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client" rel="noreferrer">http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client</a>): </p>
  
  <pre><code>using (var client = new HttpClient())
  {
      client.BaseAddress = new Uri("http://localhost:9000/");
      client.DefaultRequestHeaders.Accept.Clear();
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  
      // New code:
      HttpResponseMessage response = await client.GetAsync("api/products/1");
      if (response.IsSuccessStatusCode)
      {
          Product product = await response.Content.ReadAsAsync&lt;Product&gt;();
          Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category);
      }
  }
  </code></pre>