title: Retrying HttpClient Unsuccessful Requests
body: <p>I am building a function that given an HttpContent Object, will issues request and retry on failure.  However I get exceptions saying that HttpContent Object is disposed after issuing the request.  Is there anyway to copy or duplicate the HttpContent Object so that I can issue multiple requests.</p>
  
  <pre><code> public HttpResponseMessage ExecuteWithRetry(string url, HttpContent content)
   {
    HttpResponseMessage result = null;
    bool success = false;
    do
    {
        using (var client = new HttpClient())
        {
            result = client.PostAsync(url, content).Result;
            success = result.IsSuccessStatusCode;
        }
    }
    while (!success);
  
   return result;
  } 
  
  // Works with no exception if first request is successful
  ExecuteWithRetry("http://www.requestb.in/xfxcva" /*valid url*/, new StringContent("Hello World"));
  // Throws if request has to be retried ...
  ExecuteWithRetry("http://www.requestb.in/badurl" /*invalid url*/, new StringContent("Hello World"));
  </code></pre>
  
  <p>(Obviously I don't try indefinitely but the code above is essentially what i want).</p>
  
  <p>It yields this exception</p>
  
  <pre><code>System.AggregateException: One or more errors occurred. ---&gt; System.ObjectDisposedException: Cannot access a disposed object.
  Object name: 'System.Net.Http.StringContent'.
     at System.Net.Http.HttpContent.CheckDisposed()
     at System.Net.Http.HttpContent.CopyToAsync(Stream stream, TransportContext context)
     at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
     --- End of inner exception stack trace ---
     at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
     at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
     at System.Threading.Tasks.Task`1.get_Result()
     at Submission#8.ExecuteWithRetry(String url, HttpContent content)
  </code></pre>
  
  <p>Is there anyway to duplicate an HttpContent Object or reuse it?</p>