Скачивание текста HTML страницы с удаленного сервера
Довольно тривиальная задача, с которой могут многие столкнуться. Но ее решение не очевидно. Мне это понадобилось, когда я разрабатывал AldoranSpy. Суть была в том, что необходимо было получить содержимое HTML-страницы с удаленного сервера. Пытаясь использовать компонент WebBrowser, у меня возникали трудности различного характера. К тому же было понятно, что WebBrowser
– компонент визуальный (а ведь нам не требуется ничего отображать) и держать его невидимым было уж как-то совсем неправильно.
Довольно долго искал, как правильно было использовать WebBrowser
, в то время как его использование совсем не требовалось. Ответ крылся в использовании класса WebClient
.
using System.Net;
string strFileContent;
WebClient Client = new WebClient();
Stream strm = Client.OpenRead("http://www.aldoran.ru/?page=stat");
StreamReader sr = new StreamReader(strm);
strFileContent = sr.ReadToEnd();
strm.Close();
В итоге, в переменной strFileContent
получаем содержимое HTML-страницы. Но это далеко не единственное применение WebClient
. Также можно качать и картинки:
using System.Net;
Bitmap m_bmpFileContent;
WebClient Client = new WebClient();
Stream strm = Client.OpenRead("http://www.aldoran.ru/userbars/" + m_strUserName + ".png");
bmpFileContent = new Bitmap(strm);
strm.Close();
Вполне естественно, что картинки – тоже не последнее, что может делать WebClient
. К примеру, с помощью него можно загружать файла на удаленный ресурс. Более подробно вы все это можете прочитать на странице MSDN.