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, в адресную строку браузера.


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

В данный момент на форме расположен 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.

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


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

Похожие темы

c# Как программно добавить контрол на форму... c# Как программно добавить контрол на форму В этой статье рассмотрим процесс программного добавления визуального элемента управления (Control) на фор...
Как защитить сайт? Лучшие Способы Бесплатно... Поскольку не существует никакого смысла ставить программное обеспечение такое как Анти вирус и даже если захотеть то они очень дорогие, люди просто сч...
Генератор паролей на языке c#... Генератор паролей на языке c# На основе предыдущей статьи создадим простую программу, которая будет генерировать восьмизначные пароли, состоящие из л...
Как найти html элемент по атрибуту class... Как найти html элемент по его классу? В этой статье хотелось бы рассказать, как можно быстро и легко найти html элемент по его классу. Поиск элементо...
Pentesting web-сервера Всем привет! В этой статье я уделю внимание WEB-серверам и протоколу HTTP. HTTP— протокол прикладного уровня основной задачей, которого является о...