我正在尝试将客户端的数据下载到我的本地计算机(以编程方式),并且他们的网络服务器非常非常慢,这导致我的WebClient对象超时。
WebClient
这是我的代码:
WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.DownloadFile(downloadUrl, downloadFile);
有没有办法在这个对象上设置无限超时?或者,如果没有,任何人都可以帮我举一个替代方法的例子吗?
该 URL 在浏览器中运行良好 - 只需大约 3 分钟即可显示。
您可以扩展超时:继承原始 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; } }