При использовании метода System.Net.WebClient.DownloadData() я получаю неоправданно медленное время отклика.
При получении URL-адреса с использованием класса WebClient в .NET требуется около 10 секунд, прежде чем я получу ответ, в то время как та же страница загружается моим браузером менее чем за 1 секунду. И это с данными размером 0,5 КБ или меньше.
Запрос включает параметры POST/GET и заголовок пользовательского агента, если это может вызвать проблемы.
Я еще не пробовал, если другие способы загрузки данных в .NET вызывают у меня те же проблемы, но я подозреваю, что мог бы получить аналогичные результаты. (У меня всегда было чувство, что веб-запросы в .NET необычно медленные...)
Что может быть причиной этого?
Изменить:
Япопытался сделать то же самое, используя System.Net.HttpWebRequest
вместо этого, используя следующий метод, и все запросы заканчиваются менее чем за 1 сек.
public static string DownloadText(string url)
var request = (HttpWebRequest)WebRequest.Create(url);
var response = (HttpWebResponse)request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
return reader.ReadToEnd();
}
}
Хотя этот (старый) метод с использованием System.Net.WebClient
занимает 15-30 секунд для завершения каждого запроса:
public static string DownloadText(string url)
{
var client = new WebClient();
byte[] data = client.DownloadData(url);
return client.Encoding.GetString(data);
}