You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FileWebRequest无ReadWriteTimeout属性?HTTP请求超时设置代码适配问题

解决FileWebRequest无ReadWriteTimeout属性导致的问题

你的问题核心在于代码没有区分不同协议对应的WebRequest类型差异——FileWebRequest确实不存在ReadWriteTimeout属性,当Uri是file://协议时,直接强制转换会触发异常。

我们可以通过类型校验的方式调整代码,只在请求确认为HttpWebRequest类型时才设置ReadWriteTimeout,修改后的代码如下:

_timeout=150000;
protected override WebRequest GetWebRequest(Uri uri) 
{
    WebRequest request = base.GetWebRequest(uri);
    request.Timeout = _timeout;
    
    // 仅当请求是HttpWebRequest实例时,才设置ReadWriteTimeout
    if (request is HttpWebRequest httpRequest) 
    {
        httpRequest.ReadWriteTimeout = request.Timeout;
    }
    
    return request;
}

关键说明:

  • 使用模式匹配语法(is HttpWebRequest httpRequest)替代旧的强制转换,既简洁又能避免类型不匹配时的异常。
  • FileWebRequest仅需设置Timeout属性即可满足需求,它本身不需要ReadWriteTimeout来控制读写超时,跳过该属性设置完全不影响功能。
  • 修改后代码对http:///https://和file://协议的Uri都能正常兼容,不会再出现类型相关的报错。

内容的提问来源于stack exchange,提问作者Ole Albers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:38:05