如果您出于简单目的使用它,WebClient 就足够了。如果没有 Timeout,您可以继承它并轻松覆盖它的 GetWebRequest 方法:
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
request.Timeout = Timeout;
return request;
}
如果使用多线程方式,则必须通过代码或 app.config 设置 MaxConnection: 提高 .NET 中多线程 HttpWebRequests 的性能
您也可以轻松地并行化它: Best practics for parallelize web crawler in .net 4.0
也许微软为 WebClient (HttpWebRequest) 的实现问题创建了新的 HttpClient 类
但它没有 Proxy,Gzip 支持。
对于 Web 客户端:
在多线程实现中设置超时仍然无用!
所以问题:
我需要带有代理、超时(工作之一)、gzip 支持的 FastWebClient。我会将它与多个代理一起使用,所以我肯定需要多个 FastWebClient。
或助手:
FastWebHelper.DownloadString(字符串 url,WebProxy 代理,int 超时)
任何的想法 ?