Самый быстрый способ загрузки нескольких веб-страниц с использованием C # - PullRequest
4 голосов
/ 18 сентября 2011

Это (базовый) пример того, что у меня сейчас есть:

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

Есть ли более быстрый путь?

Ответы [ 2 ]

9 голосов
/ 18 сентября 2011

Важно, чтобы загрузка выполнялась параллельно, что вы уже делаете благодаря асинхронной загрузке.

Скорость загрузки вашего кода полностью зависит от фактической скорости передачи по сети, поэтомукак хорошо.

2 голосов
/ 19 сентября 2011

Я полагаю, что вы можете сделать это намного быстрее, если вы установите заголовок Accept-Encoding на gzip, deflate, если сервер поддерживает gzip (современный веб-сервер должен поддерживать).

Основная идея - попросить сервер сжать содержимое перед загрузкой, обычно для обычной веб-страницы, вы можете получить на 50% меньше по размеру и, следовательно, сэкономить 50% времени.

Посмотрите на это: http://csharpfeeds.com/post/5518/HttpWebRequest_and_GZip_Http_Responses.aspx

...