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



              


Использование web-службы на стороне клиента


Если щелкнуть на ссылке GetWeather на рис. 12.4, в броузере загружается страница, показанная на рис. 12.5. На странице приведен код, который может использоваться для обращения к web-службе. В разделе «SOAP» описывается доступ к службе через протокол SOAP, основанный на XML. Этот протокол отличается наибольшей гибкостью, но простым его не назовешь. В простейшем варианте обращения к web-службе используется запрос HTTP GET. Прототип выглядит следующим образом:

/WebServicel/Servicel.asmx/

GetWeather?city=string НTTР/1.1

Host:Local Host

Рис. 12.5. Простейший вариант использования web-службы

Введите в текстовом поле строку Seattle и нажмите кнопку Invoke. Примерный вид страницы показан на рис. 12.6.

Рис. 12.6. Результаты обращения к web-службе

Результат представлен в формате XML, что позволяет легко проанализировать данные в программе. Также обратите внимание на то, что в автоматически сгенерированном коде показано, как обращаться к web-службе за пределами IDE. Для этого необходимо лишь сгенерировать правильный запрос HTTP GET или SOAP. Ниже приведен пример построения запроса GET в консольном приложении, использующем для отправки запроса GET классы WebRequest и WebResponse пространства имен System.Net:

1 Imports System.Net

2 Imports System.I0

3 Module Module1

4 Sub Main()

5 Dim myResponse As WebResponse

6 Try

7 Dim myWebServiceRequest As WebRequest

8 myWebServiceRequest - WebRequest.Create _

9 ("http://localhost/WebServicel/Servicel.

asmx/GetWeather?dty=SeattIe")

10 myResponse = _

11 myWebServiceRequest.GetResponse()

12 Dim theAnswer As String

13 Dim aStream As New StreamReader

(myResponse.GetResponseStream)

14 theAnswer = aStream.ReadToEnd

15 MsgBox(theAnswer)

16 Catch e As Exception

17 Console.WriteLine(e.Message)

18 Finally

19 myResponse. Close()

20 End Try

21 End Sub

22 End Module

Ключевая роль в этом листинге принадлежит строке 8 (продолжающейся в строке 9), в которой серверу передается запрос GET.


Содержание  Назад  Вперед