HttpClient.Timeout及其与大型传输的关系

时间:2013-05-28 03:31:41

标签: .net dotnet-httpclient

情景

我试图围绕HttpClient.Timeout的行为。 MSDN将其描述为“在请求超时之前等待的毫秒数”,但我并不完全清楚request的含义是什么,或者如果我想要更特别的控制,我该怎么做。

我发现的一件事是,超时至少会考虑发送请求所需的时间,这有点令人沮丧,因为我正在处理足够大的数据,默认的100秒超时不足以发送整个内容。

一个无法到达的解决方案

一个简单的解决方案可能是大幅增加超时,但令我震惊的是,这可能会产生一些非常不利的后果。假设客户端无法与服务器建立连接。建立连接等待20分钟是荒谬的,但等待20分钟,而转移正在稳步推进是完全合理的(至少我的情况)。

问题

我有办法更精细地控制HttpClient的超时元素吗?可能我必须将超时设置为无限制,并通过CancellationToken或其他机制使用我自己的代码管理超时?如果我需要这种级别的控制权,我最好完全放弃HttpClient,然后转到基础HttpWebRequestHttpWebResponse类?

0 个答案:

没有答案