【问题标题】:What Exactly is a Timeout when using WebRequest?使用 WebRequest 时的超时究竟是什么?
【发布时间】:2012-06-20 13:49:06
【问题描述】:

MSDN 声明WebRequest.Timeout 表示

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

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

我之所以这么问,是因为我正在使用 modified WebClient 从某个来源下载相当大的 (~1GB) 文件,该来源有时会出现问题,并且需要几分钟到几小时才能开始发送响应。我想设置超时,以便成功的传输(可能需要长达 20 分钟,具体取决于连接质量)不会超时,但理想情况下偶尔的打嗝会很快超时。

【问题讨论】:

标签: .net webclient


【解决方案1】:

Adjusting HttpWebRequest Connection Timeout in C# 未被接受的答案引导我检查 ReadWriteTimeout 属性,该属性指出

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

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

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 2019-12-31
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 2023-02-25
    • 1970-01-01
    • 2014-10-28
    相关资源
    最近更新 更多