如何更改.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 关注
- 1346 浏览
添加回答
举报
0/150
提交
取消
