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

标签 c# .net file download webclient

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

这是我的代码:

WebClient webClient = new WebClient();

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

有没有办法在这个对象上设置无限超时?或者,如果没有,谁能帮我举一个替代方法的例子?

该 URL 在浏览器中运行良好 - 只需大约 3 分钟即可显示。

最佳答案

您可以延长超时时间:继承原始 WebClient 类并重写 webrequest getter 以设置您自己的超时时间,如下例所示。

在我的案例中,MyWebClient 是一个私有(private)类:

private class MyWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri uri)
    {
        WebRequest w = base.GetWebRequest(uri);
        w.Timeout = 20 * 60 * 1000;
        return w;
    }
}

关于c# - 如何更改 .NET WebClient 对象的超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1789627/

相关文章:

c# - Xamarin - 尝试在 Project 上安装所需的 Android 组件时发生错误

c# - 如何从虚拟键代码转换为 System.Windows.Forms.Keys

.net - 引用程序集文件夹和具有相同版本的不同程序集

perl - 如何使用 Perl 复制特定类型的所有文件?

c# - 带搜索框的多线程

c# - 忽略使用 Automapper 映射一个属性

c# - 如何在 C# 中使用 System.Reflection.MethodBase 查找方法的返回类型?

css - 如何快速从整个文件中删除所有供应商前缀?

C 中的命令行参数和 ftruncate

c# - HiddenField 始终为 NULL,来自 javascript