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“任务被取消”的主要内容,如果未能解决你的问题,请参考以下文章