Пример 99. Клиентское Web-приложение, потребляющее сервис Web-службы Морфер
Создадим клиентское Web-приложение не для Web-службы, написанной нами, а для удаленного Web-сервиса. Различных готовых Web-служб много, их можно посмотреть, протестировать на сайтах http://uddi.xml.org/, http://www.xmethods.org/,http://www.webservicelist.com/ и др. Выберем одну из русскоязычных Web-служб, а именно Web-службу склонения существительных "Морфер", ее адрес в Сети следующий: http://www.morpher.ru/ WebServices/Morpher.asmx.
Эта Web-служба предназначена для автоматизированной обработки текстов на русском языке. В частности, метод GetAll5 Web-службы обеспечивает склонение слов и словосочетаний на русском языке. На вход функции (метода) GetAll5 данной Web-службы подаем слово в именительном падеже, функция возвращает массив строк, в которых записано это слово в различных пяти падежах: родительном, дательном, винительном, творительном и предложном.
Для испытания этой Web-службы запустим VB2010, выберем шаблон Empty ASP.NET Web Application. К текущему проекту добавим Web-форму. Для этого в пункте меню Project выберем команду Add New Item и в появившемся окне дважды щелкнем шаблон Web Form. В конструкторе формы из панели элементов Toolbox перенесем текстовое поле TextBox и кнопкуButton. Далее, чтобы добавить ссылку на удаленный класс, в пункте меню Project выберем команду Add Web Reference, в поле URL введем ссылку на Web-службу: http://www.morpher.ru/WebServices/Morpher.asmx.
При этом кнопка Add Reference станет доступной, а после щелчка на ней в окне Solution Explorer появится ссылка на удаленный класс: ru.morpher.www. Теперь мы можем использовать эту ссылку в нашем программном коде (листинг 99).
Листинг 99. Клиентское Web-приложение, потребляющее сервис
‘ Клиентское Web-приложение, потребляющее Web-сервис склонения
‘ существительных "Морфер". На вход сервиса подаем слово на русском
‘ языке, на выходе получаем это слово в различных пяти падежах
PublicClass WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Button1.Text = "Просклонять"
TextBox1.TextMode = TextBoxMode.MultiLine
End Sub
Private Sub Button1_Click(ByVal senderAs Object,ByVal e As System.EventArgs) Handles Button1.Click
‘ Создаем клиентское приложение Web-сервиса: http://www.morpher.ru/WebServices/Morpher.asmx
‘ Создаем экземпляр удаленного класса:
DimСклонениеAsNew ru.morpher.www.Morpher
Dim Падежи() As String = Склонение.GetAll5("Зиборов Виктор Владимирович")
Падежи(4) ="О " + Падежи(4)
‘ Перевод каретки vbCrLf в конце каждого склонения:
ForEach C AsString In Падежи
TextBox1.Text = TextBox1.Text & C & vbCrLf
Next
End Sub
EndClass
Как видно из текста программы, при обработке события "щелчок на кнопке" Просклонять создаем экземпляр удаленного класса склонение и далее используем метод GetAll5 класса для получения возможных склонений. Метод GetAll5 возвращает массив строк с пятью возможными склонениями. Цикл For Each обеспечивает символ конца строки vbCrLf в конце каждой строки текстового поля.
Скачать исходник к Примеру 99. Клиентское Web-приложение, потребляющее сервис Web-службы "Морфер"