Основы ASP.NET 2.0



         

Пользование web-службой - часть 3


Создание web-ссылки добавляет в конфигурационный файл еще одну запись:

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <appSettings> <add key="weather.webservicex.www.globalweather" value="http://www.webservicex.net/globalweather.asmx"/> </appSettings>

Чтобы облегчить работу с web-сервисами, используют прокси-классы. Они предоставляют разработчикам удобные функции и берут на себя преобразование их параметров в элементы XML, после чего посылают запрос web-сервису через Интернет.

Утилита wsdl поможет преобразовать его в прокси-класс:

wsdl globalweather.wsdl

Прокси-класс необходимо поместить в папку App_Code, после чего объекты этого класса можно создавать в коде любой страницы.

Программу wsdl можно запустить и удаленно:

wsdl http://www.webservicex.net/globalweather.asmx?wsdl

В созданном файле объявлен класс GlobalWeather, наследник System.Web.Services.Protocols.SoapHttpClientProtocol. Функции этого класса предназначены как для синхронного, так и для асинхронного вызова. Например, синхронная функция GetWeather запрашивает строковые параметры с названием города и страны и возвращает строку с XML-документом. В сервисе есть и другая функция, с помощью которой можно узнать доступные города для каждой страны:

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http:/ /www.webserviceX.NET/GetWeather", RequestNamespace="http://www.webserviceX.NET", ResponseNamespace="http://www.webserviceX.NET", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wr apped)] public string GetWeather(string CityName, string CountryName) { object[] results = this.Invoke("GetWeather", new object[] { CityName, CountryName}); return ((string)(results[0])); }




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