我试图围绕HttpClient.Timeout
的行为。 MSDN将其描述为“在请求超时之前等待的毫秒数”,但我并不完全清楚request
的含义是什么,或者如果我想要更特别的控制,我该怎么做。
我发现的一件事是,超时至少会考虑发送请求所需的时间,这有点令人沮丧,因为我正在处理足够大的数据,默认的100秒超时不足以发送整个内容。
一个简单的解决方案可能是大幅增加超时,但令我震惊的是,这可能会产生一些非常不利的后果。假设客户端无法与服务器建立连接。建立连接等待20分钟是荒谬的,但等待20分钟,而转移正在稳步推进是完全合理的(至少我的情况)。
我有办法更精细地控制HttpClient
的超时元素吗?可能我必须将超时设置为无限制,并通过CancellationToken
或其他机制使用我自己的代码管理超时?如果我需要这种级别的控制权,我最好完全放弃HttpClient
,然后转到基础HttpWebRequest
和HttpWebResponse
类?