На сайте представлены ссылки http://www.example.com/download.php?id=53979. Я знаю, что это файл в формате pdf и вы хотите загрузить его через программу C#. Возможно ли это, и если да, то как?Загрузка файлов через C# с сайта php
-3
A
ответ
2
Для того, чтобы скачать файл, вам нужно просто использовать WebClient
объект like in the question referenced above:
using (var client = new WebClient())
client.DownloadFile("http://www.datasheet4u.com/download.php?id=53979", "datasheet.pdf");
Что делает ваш случай несколько отличается не имеет ничего общего с сервером записываемого в PHP или что-нибудь подобное. Ссылка, которую вы указали (http://www.datasheet4u.com/datasheet/L/M/7/LM741_NationalSemiconductor.pdf.html), кажется, проверяет заголовки Referer
при обслуживании файла. Вероятно, это попытка с их стороны предотвратить то, что вы пытаетесь сделать, но на самом деле это не мешает.
Все, что вам нужно сделать, это добавить заголовок Referer
к запросу. Что-то вроде этого:
using (var client = new WebClient())
{
client.Headers.Add("Referer","http://www.datasheet4u.com/datasheet/L/M/7/LM741_NationalSemiconductor.pdf.html");
client.DownloadFile("http://www.datasheet4u.com/download.php?id=53979", "datasheet.pdf");
}
Метод загрузки файла по-прежнему остается прежним. Сервер просто требует, чтобы вы отправили дополнительную информацию в запросе.
Возможный дубликат [Как скачать файл с URL-адреса в C#?] (Http://stackoverflow.com/questions/307688/how-to-download-a-file-from-a-url-in- c) – David
Да, это работает, когда ссылка похожа на http://www.example.com/asd.pdf, но не в этом случае. –
Текст URL-адреса не имеет значения. Когда вы пытаетесь загрузить файл, каким образом он «не работает»? – David