При использовании метода 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);
}