相关疑难解决方法(0)

重试HttpClient不成功的请求

我正在构建一个给出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)

c# httpcontent dotnet-httpclient

40
推荐指数
6
解决办法
6万
查看次数

标签 统计

c# ×1

dotnet-httpclient ×1

httpcontent ×1