HttpClient“任务被取消”

Posted

技术标签:

【中文标题】HttpClient“任务被取消”【英文标题】:HttpClient "A task is cancelled" 【发布时间】:2021-09-24 10:08:42 【问题描述】:

我在“resp = client.GetAsync(relativeUri);”行间歇性地收到“任务已取消”问题。下面的代码片段。

    using (var client = new HttpClient())
    
         client.DefaultRequestHeaders.Add("Authorization", "Bearer " + JwtAccessToken);
         client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(accept));
         resp = client.GetAsync(relativeUri);
    

【问题讨论】:

连接超时——令人困惑。参见例如***.com/questions/29179848/…. 在较新的 .NET 版本中,OperationCanceledException 的 InnerException 为 TimeoutException,请参阅 github.com/dotnet/runtime/issues/21965 【参考方案1】:

通常表示请求被超时取消

顺便说一句,你忘了在这个 sn-p 中等待你的 async Get 调用

【讨论】:

即使我在 Get 之前添加了异步,也没有用。 添加“client.Timeout = TimeSpan.FromMinutes(30);”是否是个好主意这段代码?因为当我添加此代码时它似乎工作。 @Rakesh 首先,了解什么是超时,以及何时发生。其次,计算出你想要的超时时间:你想在放弃之前等待服务器响应多长时间?你可能会永远等待!第三,弄清楚如果发生超时该怎么办。

以上是关于HttpClient“任务被取消”的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient - 任务被取消 - 如何获得确切的错误消息?

深入理解HttpClient

运行时 Xamarin HttpClient 堆栈检测

HttpClient删除线[重复]

如何将 Ninject 与 HttpClient 一起使用

详解 UWP (通用 Windows 平台) 中的两种 HttpClient API