title: HttpClient PostAsync Invalid Post Format
body: <p>I am trying to use HttpClient's PostAsync to login to a website; However it always fails and when I tracked the connection using WireShark I found that it posts the data incorrectly</p>
  
  <h3>Code</h3>
  
  <pre><code>var content = new FormUrlEncodedContent(new[] 
  {
      new KeyValuePair&lt;string, string&gt;("value1", data1),
      new KeyValuePair&lt;string, string&gt;("value2", data2),
      new KeyValuePair&lt;string, string&gt;("value3", data3)
  });
  </code></pre>
  
  <p>or</p>
  
  <pre><code>var content = new List&lt;KeyValuePair&lt;string, string&gt;&gt;
  {
      new KeyValuePair&lt;string, string&gt;("value1", data1), 
      new KeyValuePair&lt;string, string&gt;("value2", data2), 
      new KeyValuePair&lt;string, string&gt;("value3", data3)
  };
  </code></pre>
  
  <p>usage</p>
  
  <pre><code>httpClient.PostAsync(postUri, content)
  </code></pre>
  
  <h3>Expectations</h3>
  
  <pre><code>value1=123456&amp;value2=123456&amp;value3=123456
  </code></pre>
  
  <h3>Reality</h3>
  
  <pre><code>//It adds strange += which makes the post fail...
  value1=123456&amp;value2+=123456&amp;value3+=123456
  </code></pre>