title: WebAPI: PostAsync with query string does not work
body: <p>see my sample web api action which take one string type parameter.</p>
  
  <pre><code>[RoutePrefix("api/customer")]
  public class CustomerController : ApiController
  {
  
          [HttpPost, Route("DeleteCustomer")]
          public HttpResponseMessage DeleteProduct(string customerID)
          {
              HttpResponseMessage response = null;
              Customer customer = repository.Get(customerID);
              if (customer == null)
              {
                  var message = string.Format("No customer found by the ID {0}", customerID);
                  HttpError err = new HttpError(message);
                  response = Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed, err);
                  response.ReasonPhrase = message;
              }
              else
              {
                  if(repository.Remove(customerID))
                  {
                      response = Request.CreateResponse&lt;Customer&gt;(HttpStatusCode.Created, customer);
                      response.ReasonPhrase = "Customer successfully deleted";
                  }
                  else
                  {
                      var message = string.Format("Due to some error customer not removed");
                      HttpError err = new HttpError(message);
                      response = Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed, err);
                      response.ReasonPhrase = message;
                  }
              }
  
  
              return response;
          }
  
  }
  </code></pre>
  
  <p>and calling like this below way with http client but not working and giving error <strong>Not found</strong></p>
  
  <pre><code>private void btnDelete_Click(object sender, EventArgs e)
  {
      var uri = new Uri(ConfigurationManager.AppSettings["baseAddress"] + "/api/customer/DeleteCustomer");
  
      var content = new FormUrlEncodedContent(new[] 
      {
          new KeyValuePair&lt;string, string&gt;("customerID", "CUS01")
      });
  
      try
      {
          using (var client = new HttpClient())
          {
              using (var response = client.PostAsync(uri, content).Result)
              {
                  if (response.IsSuccessStatusCode)
                  {
                      MessageBox.Show(response.ReasonPhrase);
                  }
                  else
                  {
                      Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                      var dict = JsonConvert.DeserializeObject&lt;Dictionary&lt;string, string&gt;&gt;(response.Content.ReadAsStringAsync().Result);
                      MessageBox.Show(dict["Message"]);
                  }
              }
          }
      }
      catch (HttpRequestException ex)
      {
          // catch any exception here
      }            
  
  }
  </code></pre>
  
  <p>some one please see my code and tell me where i made the mistake in calling code ? thanks</p>