.net程序中http请求的超时配置

时间:2024-01-30 19:42:33
  1. 请求时的超时
        //
        // 摘要: 
        //     获取或设置    System.Net.HttpWebRequest.GetResponse() 和 System.Net.HttpWebRequest.GetRequestStream()
        //     方法的超时值(以毫秒为单位)。
        //
        // 返回结果: 
        //     请求超时前等待的毫秒数。默认值为 100,000 毫秒(100 秒)。
        //
        // 异常: 
        //   System.ArgumentOutOfRangeException:
        //     指定的值小于零,并且不为 System.Threading.Timeout.Infinite。   
        HttpWebRequest.Timeout


        //
        // 摘要: 
        //     获取或设置写入或读取流时的超时(以毫秒为单位)。
        //
        // 返回结果: 
        //     在写入超时或读取超时之前的毫秒数。默认值为 300,000 毫秒(5 分钟)。
        //
        // 异常: 
        //   System.InvalidOperationException:
        //     已发送请求。
        //
        //   System.ArgumentOutOfRangeException:
        //     为 Set 操作指定的值小于等于零,并且不等于 System.Threading.Timeout.Infinite
        HttpWebRequest.ReadWriteTimeout   
  1. 响应读取时,读取返回流的超时设置
        //
        // 摘要: 
        //     获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取多长时间。
        //
        // 返回结果: 
        //     一个确定流在超时前尝试读取多长时间的值(以毫秒为单位)。
        //
        // 异常: 
        //   System.InvalidOperationException:
        //     System.IO.Stream.ReadTimeout 方法总是引发 System.InvalidOperationException。
        HttpWebResponse.GetResponseStream().ReadTimeout   

如果是POST请求,可能需要设置HttpWebRequest.GetRequestStream().WriteTimeout,这个暂时未测试过,不知道HttpWebRequest.ReadWriteTimeout参数是否因为对其失效。