2011-01-31 3 views
1

Можно ли загружать файлы с веб-сайта с помощью httprequest? Я использую его только для получения исходного кода страницы. Если нет способа сделать это с помощью httprequest, есть ли способ загружать файлы с помощью C# без использования веб-браузера?Загрузка файлов с использованием httprequest

Edit: ответ должен позволить мне выбрать место на жестком диске, где файл будет закачан в

ответ

4

Вы можете абсолютно использовать HttpRequest, получая WebResponse и использовать его поток ответа. Альтернативно, используйте WebClient, с его методами DownloadFile и DownloadData, чтобы облегчить жизнь.

В конечном счете нет большой разницы между запросом, который получает двоичный файл как ответ и запрос, который получает некоторый HTML в качестве ответа. В некотором смысле двоичный ответ проще, поскольку вам не нужно беспокоиться о кодировке символов.

+0

как я могу сохранить файл? –

+0

@DazSlayer .. Почему бы вам не попробовать использовать эти классы и попробовать немного? :-) – Shoban

+0

@DazSlayer: либо используйте 'WebClient.DownloadFile', либо просто открывайте' FileStream', и повторно читаете из потока ответов и записываете его в поток файлов. Если вы используете .NET 4, есть даже «Stream.CopyTo», чтобы сделать это проще. –

3

использовать WebClient Class, что оборачивает все ваши потребности, чтобы загрузить данные по протоколу HTTP.

, чтобы получить исходный код страницы:

WebClient client = new WebClient(); 
string src = client.DownloadString(uri); 
+0

Как изменить местоположение, на которое он загружает файл? –

+0

это в основном возвращает строку, используйте downloadFile (http://msdn.microsoft.com/en-us/library/ms144194(v=vs.80).aspx), чтобы установить путь для загрузки (как @jonSkeet сказал;) –

+0

Примеры на сайте показывают, как загружать файлы на путь запуска приложения, как я могу выбрать пользователя для загрузки файла? –

0

Это должно сработать.

using (WebClient wc = new WebClient()) 
{ 
    wc.DownloadFile(downloadURL, fileName); 
} 
+0

Второй параметр - это имя файла, а не savePath –

+0

Но =) Я думал, что будет легче понять. Поскольку я думаю, что это путь и имя файла ... –

Смежные вопросы