C # WebClient DownloadString неожиданно дает тайм-аут после нескольких месяцев - PullRequest
0 голосов
/ 11 июня 2018

Около года назад я создал инструмент для автоматического обновления наших устаревших файлов Dell BIOS, но сегодня он внезапно перестал работать.Я использую REST API, который сайт Dell вызывает при серфинге вручную.

Это запрос, который я отправляю с добавленным заголовком внизу:

GET http://www.dell.com/support/home/be/nl/bebsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A
X-Requested-With: XMLHttpRequest

Странно то, что он все еще работаетпри использовании его с манипулятором запроса, таким как HttpRequester (для firefox).Я уверен, что никакие другие заголовки, такие как UserAgent, не отправляются.

Код в C # (с одной моделью):

WebClient wc = new WebClient();
wc.Headers.Add("X-Requested-With: XMLHttpRequest");
wc.QueryString.Add("name", "5580");
wc.DownloadStringCompleted += Wc_DownloadStringCompleted;
wc.DownloadStringAsync(new Uri("http://www.dell.com/support/home/be/nl/bebsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A"));

Я тестировал с использованием Async или нет, но для этой проблемы это нене имеет значения.Тайм-аут возвращается как ошибка.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 11 июня 2018

Используйте это.

WebClient wc = new WebClient();
wc.Headers.Add("X-Requested-With","XMLHttpRequest");
wc.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
wc.Headers.Add("Accept-Language", "en-US,en;q=0.9");
var response = wc.DownloadString("https://www.dell.com/support/home/in/en/inbsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A&name=5580");
Console.WriteLine(response);
...