如何更改.NET WebClient对象的超时

如何更改.NET WebClient对象的超时

我试图将客户端的数据下载到我的本地机器(以编程方式),并且他们的网络服务器非常非常慢,导致我的WebClient对象超时。

这是我的代码:

WebClient webClient = new WebClient();webClient.Encoding = Encoding.UTF8;webClient.DownloadFile(downloadUrl, downloadFile);

有没有办法在这个对象上设置无限超时?或者,如果没有,任何人都可以用另一种方式帮助我做一个例子吗?

该URL在浏览器中正常工作 - 只需3分钟即可显示。


森林海
浏览 1294回答 3
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;     }}

万千封印

您需要使用HttpWebRequest而不是WebClient在WebClient不扩展超时的情况下设置超时(即使它使用了HttpWebRequest)。使用HttpWebRequest替代将允许您设置超时。
打开App,查看更多内容
随时随地看视频慕课网APP