Я пытаюсь загрузить PDF-файл из URL-адреса с помощью консольного приложения Windows. Я использую следующий код:C# console Webclient не возвращает данные, но браузер делает
using (var webClient = new System.Net.WebClient())
{
webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
byte[] data = webClient.DownloadData(url);
System.IO.File.WriteAllBytes(@"D:\Files\hello.pdf", data);
}
Если скопировать и вставить тот же адрес в приведенном выше коде в браузере/почтальона, я получаю файл, однако, когда я пытаюсь то же самое в C# консольное приложение, я получить другой ответ HTML. Я перехватил запрос/ответ с помощью Fiddler, и единственное различие, которое я мог видеть, это то, что когда запрос запускается через браузер/почтальон, я вижу, что к запросу, которые относятся к приложению, над которым мы работаем, добавляются некоторые дополнительные файлы cookie. Я смущен, почему браузер/почтальон может добавлять файлы cookie, специфичные для приложения.
Я попытался очистить все файлы cookie и попробовал его снова в браузере, но Fiddler показывает файлы cookie в запросе. Какие-нибудь подсказки относительно того, что происходит?
Каков адрес? –
Часто куки-файлы, используемые для аутентификации в некотором роде ... Вам решать создать хаки для их получения (т. Е. Путем запроса первой страницы/поддельного входа) или украсть из браузера ... Обычно сайты не тестируются чтобы правильно работать, когда кто-то пытается их очистить, и часто явно настраивает, чтобы сдерживать такое поведение, проверяя файлы cookie/referrer/hidden автоматически сгенерированные поля и тому подобное. –