Maison > Article > développement back-end > Flex与.NET互操作(二):基于WebService的数据访问(上)
Flex提供了
本文以.NET平台下C#语言开发的WebService作为远程数据源,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点。三个标签的使用方法基本上是一样,这里就以
首先看看如下代码块:
1
3useProxy="false">
4
5
6
wsdl属性指定到要访问的WebService的wsdl地址既可,其中定义了两个操作标签(
1///
2///返回字符串
3///
4///
5[WebMethod]
6publicstringHelloWorld()
7{
8return"HelloWorld";
9}
10
11///
12///返回一个简单对象
13///
14///
15[WebMethod]
16publicBookGetBook()
17{
18returnnewBook
19{
20Id=1,
21Name="三国演义",
22Author="罗贯中",
23Price=100
24};
25}
如上便是WebService方法定义和在Flex的客户端(mxml)通过
1
23importmx.controls.Alert;
4importmx.rpc.events.FaultEvent;
5importmx.rpc.events.ResultEvent;
6
7/**
8*向WebService发起请求--调用HelloWorld方法,dataService为
9**/
10internalfunctiononRequest():void
11{
12dataService.HelloWorld();
13}
14
15/**
16*请求成功处理返回结果
17**/
18internalfunctiononSuccess(evt:ResultEvent):void
19{
20Alert.show(evt.result.toString());
21}
22
23
24/**
25*请求失败的处理函数
26**/
27internalfunctiononFault(evt:FaultEvent):void
28{
29Alert.show("访问WebService失败!");
30}
31]]>
32
通过上面的调用,就可以完成一个Flex和.NET WebService的交互。当然我们在Flash/Flex的客户端调用WebService也是可以传递参数的,如下WebService的WebMethod定义:
1///
2///将传递进来的参数转化为大写字符返回
3///
4///
5///
6[WebMethod]
7publicstringConvertToUpper(stringvalue)
8{
9returnvalue.ToUpper();
10}
通过在
1
1 /**
2*向WebService发起请求
3**/
4internalfunctiononRequest():void
5{
6//dataService.HelloWorld();
7dataService.ConvertToUpper("abcdefg");
8}
另外,我们还可以通过
回到前面看看WebService的方法定义,其中一个方法GetBook是返回的一个Book对象,如果是返回的对象我们在Flex的客户端怎么来获取这个对象的值呢?详细见如下代码示例:
1internalfunctiononObject():void
2{
3dataService.GetBook();
4}
5
6internalfunctiononObjectSuccess(evt:ResultEvent):void
7{
8//直接通过事件的result属性得到返回值,然后直接访问属性便OK
9Alert.show(evt.result.Name);
10}
11
12/**
13*请求失败的处理函数
14**/
15internalfunctiononFault(evt:FaultEvent):void
16{
17Alert.show("访问WebService失败!");
18}