使用WebRequest时超时究竟是什么?

时间:2012-06-20 13:49:07

标签: .net webclient

MSDN状态WebRequest.Timeout表示

  

请求超时之前的时间长度(以毫秒为单位),或   值Timeout.Infinite表示请求没有时间   进行。

究竟什么构成“超时”?这是类在返回第一个字节之前等待的最长时间吗?这是整个请求完成的最长时间吗?是别的吗?

我问,因为我正在使用modified WebClient从源中下载相当大的(~1GB)文件,这些文件有时会打嗝并需要花费几分钟到几个小时才能开始发送响应。我想设置超时,以便成功传输(最多可能需要20分钟,具体取决于连接质量)不会超时,但是偶尔打嗝很快就会超时。

1 个答案:

答案 0 :(得分:0)

Adjusting HttpWebRequest Connection Timeout in C#未经接受的答案让我检查了ReadWriteTimeout属性,其中说明了

  

具体来说,ReadWriteTimeout属性控制超时   Read方法,用于读取由...返回的流   GetResponseStream方法,以及用于的Write方法   写入GetRequestStream方法返回的流。

     

要指定等待请求完成的时间,请使用   超时属性。