C# WebBrowser. Часть 1: Получение и вывод данных

При создании одного из своих приложений мне потребовалось реализовать в нём возможность скачивать файлы из Интернета, а так же просматривать web странички. Для решения задачи было принято решение использовать готовый control webBrowser, который дублировал и предоставлял функционал веб-браузера Internet Explorer и прекрасно подходил для решения моих задач. Оставалось только добавить данный элемент управления (Control) на форму и приступит к работе.

Так получилось, что когда в первый раз пришлось испытать данный контрол в действии, дома не было Интернета почти 2 недели, поэтому пришлось использовать локальный веб-сервер денвер. Для начала был создан тестовый сайт test.local, который состоял всего из одной простой html странички index.html.

html страница

Затем в программе Visual Studio было создано новое Windows Forms приложение, а на форму добавлено два элемента управления: Button и webBrowser. Так же было изменено стандартное имя кнопки на btnSend.

webBrowser

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

Получение и вывод данных в элемент управления webBrowser

Первая задача при изучении данного контрола была проста, это понять, как получить содержимое моего сайта в окне элемента управления webBrowser.

Для начала вспоминаем, как мы обычно работаем с любым из веб-браузеров, например: опера, хром, IE и так далее.

1. Вводим адрес запрашиваемого ресурса в адресную строку браузера, например: codeby.net.

2. Нажимаем на клавиатуре кнопку Enter, после чего в окне браузера появляются или выводятся какие-то данные, например: картинки, видео, текст, — одним словом, контент.

На самом деле за этими двумя действиями скрыт большой объем работы, например: обмен запросами между браузером и сервером, преобразование доменного имени ресурса в ip адрес, многочисленные проверки, парсинг полученных данных от сервера, перед выводом в окно браузера и это лишь малая часть действий, которые выполняются после нажатия клавиши Enter.

Адресная строка веб-браузера

И так первое, что требуется сделать, это ввести адрес ресурса, обычно представленный в виде доменного имени, в моем случае test.local, в адресную строку браузера.

В данный момент на форме расположен control webBrowser, который только выводит окончательные результаты запросов. Чтобы получить возможность использовать адресную строку в своем приложении, можно добавить на форму control TextBox, в поле ввода которого будет вводиться адрес ресурса. Но, так как сайт у меня всего один, то пока что я решил ограничиться всего лишь полем типа string, в котором будет хранить адрес нужного мне ресурса.

Первая задача решена, переходим ко второй.

webBrowser Navigate

После того, как адрес был введён, нужно нажать клавишу Enter, после чего произойдет отправка запроса на сервер, в ответ на который будут получены какие-то данные, в моем случае обычная html разметка.

Если для ввода адреса Вы используете control TextBox, то для того, чтобы отловить нажатие клавиши Enter, можно использовать событие KeyDown.

Внутри обработчика данного события выполняется всего один метод Navigate, который осуществляет переход (запрос) по указанному нами адресу, взятому из поля url (TextBox), получает ответ от сервера, после чего выполняет загрузку полученных данных в контрол webBrowser.

Так как у меня на форме нет контрола TextBox, то воспользуюсь кнопкой btnSend, которая будет выполнять все те же действия, что и нажатая клавиша Enter, но только по клику мышкой. Для этого сначала подпишем кнопку btnSend на событие Click, внутри которого будет выполняться всё тот же метод Navigate. Если кликать лень, то так же подписываемся на событие KeyDown, только на этот раз для кнопки btnSend.

либо так

webBrowser.Url

Вместо метода Navigate, так же можно использовать свойство Url, которое работает похожим образом

1). Сначала указываем адрес ресурса, куда будет осуществляться запрос
2). Происходит скрытый вызов метода Navigate.

Как видно запросить и получить данные, используя control webBrowser очень просто, для этого всего лишь потребовалось несколько строчек кода.

В следующей статье более подробно рассмотрим, что происходит во время выполнения метода Navigate.

Читайте также:

Похожие темы

Параметры реестра Windows Параметры реестра Windows В прошлом разделе мы научились создавать разделы и подразделы реестра, используя язык c#, теперь научимся создавать парамет...
Как защитить сайт? Лучшие Способы Бесплатно... Поскольку не существует никакого смысла ставить программное обеспечение такое как Анти вирус и даже если захотеть то они очень дорогие, люди просто сч...
c# Как выделить диапазон ячеек в DataGridView?... Выделение диапазона ячеек в DataGridView В этой небольшой статье хочу показать на простом примере, как можно программно выделить диапазон ячеек в эле...
Пишем simple-кейлогер с передачей дампа по TCP на ... Всем доброго времени суток! В продолжение первой и второй частей сегодня допишем последнее - дешифратор той каши, что у нас получалась на первых ...
c# Шпаргалка для работы с папками и подпапками... c# Шпаргалка для работы с папками и подпапками Перед началом работы подключите пространство имён System.IO Это можно выполнить как вручную, добави...