title: How to POST list of Product by WebClient or HttpClient and how to whire WebAPI controller for it?
body: <p>I have WebAPI controller's method:</p>
  
  <pre><code>    [HttpPost]
      public void ChangeProducts(List&lt;Product&gt; products)
      {
          // ...
      }
  </code></pre>
  
  <p>And I try to send a list by WebClient:</p>
  
  <pre><code>        using (var wc = new WebClient())
          {
              wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
  
              string sl = JsonConvert.SerializeObject(products);
              var  r = wc.UploadString(_orderServiceUrl, sl);
          }
  </code></pre>
  
  <p>or by HttpClient:</p>
  
  <pre><code>        using (var hc = new HttpClient())
          {
              var val = JsonConvert.SerializeObject(products);
  
              hc.BaseAddress = new Uri(_orderServiceUrl);
              hc.DefaultRequestHeaders.Add("Accept", "application/json");
              HttpResponseMessage r = hc.PostAsync(_orderServiceUrl, new StringContent(val)).Result;
          }
  </code></pre>
  
  <p>But in controller the list is empty (not null, but no items).</p>
  
  <p>Why?</p>