情景
我正试图围绕HttpClient.Timeout
. MSDN将其描述为“请求超时前等待的毫秒数”,但我并不完全清楚 的含义request
,或者如果我想要更具体的控制该怎么做。
我发现的一件事是超时至少考虑了发送请求需要多长时间,这有点令人沮丧,因为我正在处理足够大的数据,默认的 100 秒超时不足以发送整个内容。
一个不太成功的解决方案
一个简单的解决方案可能是大幅增加超时时间,但我很惊讶这可能会产生一些非常不希望的后果。假设客户端无法建立与服务器的连接。等待 20 分钟以建立连接是荒谬的,但等待 20 分钟而传输正在稳步推进是完全合理的(至少对于我的场景而言)。
问题
有没有办法让我更精细地控制超时元素HttpClient
?我是否必须将超时设置为无限制并通过我自己的代码CancellationToken
或其他机制管理超时?如果我需要那种程度的控制,我是否最好完全放弃HttpClient
,而去底层HttpWebRequest
和HttpWebResponse
类?