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

       

Простая web-служба


Простая web-служба

Как упоминалось в главе 9, непосредственное извлечение информации из web-страниц — процесс медленный (из-за необходимости анализировать всю страницу) и ненадежный, поскольку структура страницы может измениться. Удобным средством получения таких данных с web-сайта является web-служба (Web service).

Иначе говоря, сайт предоставляет свою функциональность средствами, с которыми можно работать в программах (с точки зрения программиста VB сайт, на котором работает web-служба, напоминает компонент, который предоставляет свою функциональность программе).

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

В .NET создание web-служб, используемых в клиентских программах, становится делом почти элементарным. В сущности, для этого достаточно определить класс .NET и пометить его члены, доступные через web-службу, атрибутом <WebMethod( )>. Рассмотрим простой пример — допустим, мы создаем web-службу для возвращения информации о погоде.

Для простоты в нашем примере возвращаемые данные жестко кодируются в функции GetWeather.

Создайте новый проект web-службы, для чего следует выбрать значок ASP .NET Web Service в диалоговом окне New Project. Результат показан на рис. 12.3.

Рис. 12.3. Проект web-службы в IDE

Дважды щелкните на дизайнере и обратите внимание на автоматически сгенерированный код:

Public Class Servicel



Inherits System.Web.Services.WebService

Класс System. Web. Services. WebServi се является базовым для всех web-служб .NET. Благодаря наследованию в вашем распоряжении оказываются все возможности этого класса, в том числе и свойство Context для получения запроса HTTP, использованного для обращения к странице через Web.

Включите следующий фрагмент перед командой End Class:

<WebMethod()>Public Function GetWeather(ByVal City As String)

As String Select Case City

' Получить информацию о погоде в Сиэттле


Case "Seattle"

Return " The current temperature is 64 degrees. " & _

"and raining of course."

Case Else

Return "Can't find data for " & City & "."

End Select

End Function

При нажатии клавиши F5 VS .NET IDE автоматически генерирует web-страницу наподобие показанной на рис. 12.4. На этой странице приводится общая информация о web-службе.



Рис. 12.4. Автоматически сгенерированная страница с описанием web-службы

При создании web-службы VS.NET IDE автоматически генерирует XML-файл с описанием службы, написанный на языке WSDL (Web Service Language Description). Программисты COM могут рассматривать его как аналог библиотеки типов. Редактирование сгенерированного файла .vsdisco позволяет изменить информацию о web-службе, содержащуюся в файле WSDL. В частности, рис. 12.4 был получен на основании кода WSDL.




Содержание раздела