如何更改.NET WebClient对象的超时我试图将客户端的数据下载到我的本地机器(以编程方式),并且他们的网络服务器非常非常慢,导致我的WebClient对象超时。这是我的代码:WebClient webClient = new WebClient();webClient.Encoding = Encoding.UTF8;webClient.DownloadFile(downloadUrl, downloadFile);有没有办法在这个对象上设置无限超时?或者,如果没有,任何人都可以用另一种方式帮助我做一个例子吗?该URL在浏览器中正常工作 - 只需3分钟即可显示。
3 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
您可以延长超时:继承原始WebClient类并覆盖webrequest getter以设置自己的超时,如下例所示。
在我的案例中,MyWebClient是一个私有类:
private class MyWebClient : WebClient{ protected override WebRequest GetWebRequest(Uri uri) { WebRequest w = base.GetWebRequest(uri); w.Timeout = 20 * 60 * 1000; return w; }}
万千封印
TA贡献1891条经验 获得超3个赞
您需要使用HttpWebRequest
而不是WebClient
在WebClient
不扩展超时的情况下设置超时(即使它使用了HttpWebRequest
)。使用HttpWebRequest
替代将允许您设置超时。
- 3 回答
- 0 关注
- 1309 浏览
添加回答
举报
0/150
提交
取消