Загрузите файл с помощью WebBrowser Control - PullRequest
0 голосов
/ 29 июня 2011

Я пытаюсь автоматизировать загрузку файла с веб-страницы, проблема в том, что Интернет возвращает файл напрямую. например, http://www.someweb.com/generatefile.aspx,, когда я перехожу на эту страницу, файл возвращается. Я пытался с WebClient, но не работал, всегда выдает ошибку 500, однако, если я пытаюсь через IExplorer или Firefox, работать хорошо. Итак, я пытаюсь с контролем WebBrowser, который я сделал все другие вещи, такие как вход в сеть.

WebClient client = new WebClient();
client.DownloadFile(url, "D:/ss.pdf");  //Here error 500

и с веб-браузером

WebBrowser wb = new WebBrowser();
wb.FileDownload += new EventHandler(wb_FileDownload); //in the event handler i not found how save the file
wb.Navigate(url);

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Вам нужно будет немного больше настроить, но я бы порекомендовал вместо этого использовать HttpWebRequest .

Если вы знаете ожидаемый тип файла, то вы можете создать файл вфайловую систему с известным типом и получить ссылку на поток для него.Затем просто запишите поток ответов, возвращаемый HttpWebRequest :: GetResponse () .

Я пытался использовать классы, о которых вы упоминали в прошлом, но всегда прибегайте к использованию HttpWebRequest и HttpWebResponse.Как я уже говорил ранее, они немного более низкого уровня, но во многих случаях дополнительный контроль над функциями HTTP низкого уровня был полезным в моем опыте.

0 голосов
/ 29 июня 2011

Вы пытались использовать FTPWebRequest ? WebBrowser создан для взаимодействия в стиле GUI, а не для автоматизации ...

...