В данной заметке мы создадим простой web-сервис на C# .Net, а клиентом для нашего сервиса послужит FLEX приложение.
Подробное описание создания и принципов функционирования сервисов XML не входит в рамки данной статьи. Предполагается, что вы обладаете начальными знаниями:
- знаете, как создать web-сервис Hello World (такой сервис создается средой Visual Studio 2005 автоматически, стоит только выбрать File -> New -> Web Site -> ASP.NET web Service);
- на вашей машине установлен IIS (Internet Information Server) и вы знаете, как создать виртуальный каталог и разместить в нем web-сервис;
- вы обладаете навыками работы с flex.
Приступим. Наш сервис будет принимать строку с именем пользователя и «здороваться» – т.е. возвращать строку “Здравствуйте” + введенное имя.
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service () {}
[WebMethod]
public string HelloWorld(string name) {
return "Здравствуйте, " + name;
}
}Syhi-подсветка кода
Сервис содержит единственный метод HelloWorld(), который помечен атрибутом [WebMethod] и значит, может быть вызван удаленным приложением. Именно этот метод и будет вызывать Flex приложение.
Опубликуйте сервис по адресу http://localhost/soap1/service.asmx
Теперь создадим клиента на Flex. Нужно использовать <mx:WebService> тег.
<mx:WebService id="s"
wsdl="http://localhost/soap1/service.asmx?WSDL"
fault="ДЕЙСТВИЕ_ПРИ_ОШИБКЕ">
<mx:operation name="ИМЯ_ВЫЗЫВАЕМОГО_МЕТОДА"
resultFormat="object">
<mx:request>
<!-- Здесь необходимо указать параметры
вызываемого метода -->
</mx:request>
</mx:operation>
</mx:WebService>Syhi-подсветка кода
Лучше один раз увидеть, чем сто раз услышать:
Осталось добавить недостающие элементы: поле ввода, кнопку и лайбл для вывода результата.
<mx:TextInput id="input1" text="name"
x="10" y="10"/>
<!-- кнопка для отправки запроса -->
<mx:Button id="button" click="s.HelloWorld.send()"
x="178" y="10" label="Ok"/>
<!-- лайбл для вывода ответа сервиса -->
<mx:Label id="res" text="{s.HelloWorld.lastResult}"
x="10" y="85" width="210"/>Syhi-подсветка кода
Соберем весь код вместе:
<?xml version="1.0" encoding="utf-8"?>
<!-- пример клиента для web-сервиса XML -->
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:WebService id="s"
wsdl="http://localhost/soap1/service.asmx?WSDL"
fault="{res.text = 'ОШИБКА!'}">
<mx:operation name="HelloWorld" resultFormat="object">
<mx:request>
<name>{input1.text}</name>
</mx:request>
</mx:operation>
</mx:WebService>
<mx:TextInput x="10" y="10" id="input1"
text="name"/>
<mx:Button x="178" y="10" label="Ok" id="button"
click="s.HelloWorld.send()"/>
<mx:Label x="10" y="59" text="Ответ сервиса:"
id="label1" fontWeight="bold"/>
<mx:Label x="10" y="85" text="{s.HelloWorld.lastResult}"
width="210" id="res"/>
</mx:Application>Syhi-подсветка кода
1 комментарий:
Спасибо, очень наглядно))
Отправить комментарий