我正在构建一个给出HttpContent对象的函数,它将发出请求并在失败时重试.但是我得到异常,说HttpContent对象在发出请求后被处理掉.无论如何都要复制或复制HttpContent对象,以便我可以发出多个请求.
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"));
Run Code Online (Sandbox Code Playgroud)
(显然我不会无限期地尝试,但上面的代码基本上就是我想要的).
它产生了这个例外
System.AggregateException: One or more errors occurred. ---> System.ObjectDisposedException: …Run Code Online (Sandbox Code Playgroud)