使用C#下载多个网页的最快方法

时间:2011-09-18 18:05:41

标签: c# .net performance download webclient

这是我目前所拥有的(基本)示例:

foreach (var uri in uris)
{
    using (var client = new WebClient())
    {
        client.Proxy = null;
        client.DownloadStringCompleted += DownloadComplete;
        client.DownloadStringAsync(uri);
    }
}

有更快的方法吗?

2 个答案:

答案 0 :(得分:9)

重要的是要并行下载,这要归功于Async下载。

代码的下载速度完全取决于实际的网络传输速度,因此它的效果非常好。

答案 1 :(得分:2)

我相信如果你将Accept-Encoding标头设置为gzip,deflate,如果服务器支持gzip(现代网络服务器应该支持),你可以加快速度。

基本的想法是在下载之前要求服务器压缩内容,通常对于常见的网页,您可以减少50%的尺寸,因此可以节省50%的时间。

看看这个:http://csharpfeeds.com/post/5518/HttpWebRequest_and_GZip_Http_Responses.aspx