Note that there are some explanatory texts on larger screens.

plurals
  1. PORetrying HttpClient Unsuccessful Requests
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload