title: Why do HttpClient.PostAsync and PutAsync dispose the content?
body: <p>The behavior of the <a href="http://msdn.microsoft.com/en-us/library/hh138190(v=vs.118).aspx" rel="noreferrer">HttpClient.PostAsync</a> method is to dispose of the provided <a href="http://msdn.microsoft.com/en-us/library/system.net.http.httpcontent(v=vs.118).aspx" rel="noreferrer">HttpContent</a> object.</p>
  
  <p>There are many ways to get around this behavior including constructing a new <code>HttpContent</code> for each call made on the client or loading the content to a stream and changing the pointer.</p>
  
  <p>I'm wondering <strong>why</strong> invoking this method automatically invokes the disposal of its <code>IDisposable</code> parameters? As far as I'm aware this is not a common behavior in .NET</p>
  
  <p>It's also worth noting that this behavior is observed in <code>PUT</code> requests as well, which are idempotent, so the premise that this behavior is to prevent the information from being sent again doesn't seem correct.</p>