Я сталкиваюсь с подобной проблемой при попытке загрузить файл с нескольких определенных веб-сайтов, что приводит к ошибке 403 для некоторых файлов, но не для других.
Я пробовал заголовок User-Agent, заголовки Accept, пробовал URL-адрес https и другие настройки, но безуспешно.
Оба URL-адреса будут загружаться в браузер и не требуют никакой аутентификации на веб-сайте для доступа к ним (они являются общедоступными), но один будет загружен, а другой возвращает 403.
Любая помощь в выяснении причины и способ ее устранения.
static void Main(string[] args)
{
WebClient webClient = new WebClient();
webClient.Headers.Add("Accept: text/html, application/xhtml+xml, application/pdf, */*");
webClient.Headers.Add("User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
webClient.Headers.Add("Accept-Encoding: gzip, deflate, br");
webClient.Headers.Add("Accept-Language: en-US,en;q=0.9");
webClient.Headers.Add("Cache-Control: no-cache");
webClient.Headers.Add("Upgrade-Insecure-Requests: 1");
try
{
webClient.DownloadFile(new Uri("https://www.vigil.aero/wp-content/uploads/PSB-10-2013-06-14-.pdf"), "test1.pdf");
Console.WriteLine("Complete");
}
catch (Exception ex)
{
Console.WriteLine("{0}", ex.Message);
}
try
{
webClient.DownloadFile(new Uri("https://www.vigil.aero/wp-content/uploads/PSB-9-2013-06-14.pdf"), "test2.pdf");
Console.WriteLine("Complete");
}
catch (Exception ex)
{
Console.WriteLine("{0}", ex.Message);
}
Console.ReadLine();
}