Пример 101. Получение данных от Web-службы Национального банка Республики Беларусь Windows-приложением
Web-служба, предоставляющая текущие курсы валют, есть и у Национального банка Республики Беларусь. На примере потребления сервиса Web-службы этого банка создадим Windows-приложение (настольное приложение), получающее справочную информацию о текущих курсах валют в онлайновом режиме.
Для решения этой задачи запустим VB2010, выберем шаблон Windows Forms Application. В конструкторе формы добавим кнопку и элемент управления DataGridView. Мы намереваемся на сетку данных DataGridView вывести данные с курсами валют. Элемент управления DataGridView в Windows-приложении играет ту же роль, что и GridView в Web-приложении. Методы этих классов похожи, хотя есть и отличия.
Следующим этапом разработки клиентского приложения является добавление ссылки на удаленный класс искомой Web-службы. Для этого выберем в пункте меню Project команду Add Service Reference, это приведет к появлению диалогового окна Add Service Reference. В этом окне щелкнем кнопку Advanced, а затем кнопку Add Web Reference. В появившемся диалоговом окне Add Web Reference в поле URL введем адрес Web-службы: http://www.nbrb.by/Services/ExRates.asmx и нажмем кнопку Go. В окне ниже увидим список доступных методов данного сервиса, после этого щелкнем на кнопке Add Reference. При этом в окне Solution Explorer появится ссылка на удаленный класс: by.nbrb.www. Теперь мы можем использовать эту ссылку в программном коде (листинг 101).
Листинг 101. Получение данных от Web-службы Национального банка Республики Беларусь Windows-приложением
‘ Клиентское Windows-приложение, потребляющее Web-сервис центрального
‘ банка Белоруссии для получения ежедневных курсов валют. На выходе
‘ приложения получаем таблицу курсов валют.
PartialPublic Class_Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal senderAs Object,ByVal e AsEventArgs) Handles Button1.Click
‘ Создаем клиентское приложение Web-сервиса: http://www.nbrb.by/Services/ExRates.asmx
‘ Создаем экземпляр удаленного класса:
DimВалютаAsNew by.nbrb.www.ExRates
‘ А этот сайт я нашел на сайте:
‘ http://ivbeg.bestpersons.ru/feed/post3279396/
‘ Здесь есть ссылки на другие русско-язычные сервисы
DimДатаAsDate = Now
GridView1.DataSource = Валюта.ExRatesDaily(Дата)
GridView1.DataBind()
End Sub
EndClass
В программном коде выполняем обычные уже в данной главе действия. При обработке события "щелчок на кнопке" Button1 создаем экземпляр удаленного класса, а затем обращаемся к методу класса ExRates, подавая на вход метода текущую дату. Этот метод возвращает таблицу курсов валют в формате DataSet. Эту таблицу, называемую DailyExRatesOnDate, указываем в качестве источника данных DataSource ДЛЯ сетки данных DataGridView1, которую мы используем для визуализации таблицы курсов валют.