Иллюстрированный самоучитель по VB.NET


Сетевые потоки


 

Сетевые потоки


Среди областей, в которых особенно наглядно проявляются возможности абстрактной модели потока, особое место занимает пересылка информации в Интернете. Работа с низкоуровневым кодом HTML и XML почти не требует усилий со стороны программиста. Хотя в этом разделе мы сможем дать лишь общее представление об этой важной теме и о задействованных пространствах имен, по крайней мере вы увидите, как потоковая интерпретация сетевых данных реализуется на практике. В рассмотренном ниже примере мы передаем информацию на web-сайт и получаем непосредственный HTML-код новой страницы в качестве результата запроса. Анализ полученного HTML-кода приносит нужную информацию.

Мы не смогли устоять перед искушением: наше маленькое приложение обращается на сайт Amazon.com и возвращает текущие сведения о количестве проданных экземпляров нашей книги. Обобщенный алгоритм выглядит следующим образом:

  1. Создать объект URI (Universal Resource Locator) передачей строкового параметра конструктору класса URI.

  2. Передать объект URI методу Create класса HttpWebRequest, чтобы инициировать выдачу запроса HTTP.

  3. Вызвать метод GetResponse класса HttpWebRequest и получить поток.

  4. Проанализировать полученный поток, содержащий HTML-код, и извлечь из него нужную информацию, для чего необходимо знать структуру страницы. Кстати, это одна из причин, по которым для получения данных удобнее использовать web-службы: если Amazon неожиданно сменит структуру своих страниц, наше приложение перестанет работать.

В данном случае страница генерируется следующей строкой запроса, которая и будет использована для создания объекта URI (в конце строки приведен номер ISBN нашей книги):

http://www.amazon.com/exec/obidos/ASIN/1893115992

Следующий конструктор создает экземпляр класса с номером ISBN, переданным в виде строкового параметра:

Public Sub New(ByVal ISBN As String)

m_URL ="http://wvM.amazon.com/exec/obidos/ASIN/" & ISBN

End Sub

Доступное только для чтения свойство GetRank нашего класса просто вызывает закрытую функцию, основной код которой приведен в следующих восьми строках:



- Начало -  - Назад -  - Вперед -



Книжный магазин