Flex与.NET互操作:基于WebService的数据访问

     Flex提供HTTPService、WebService、RemoteObject和Socket对象来做数据交互。HTTPService,也称XML via HTTPService,就是用get和post方式进行数据传输,同平常的web form提交大致一样,好处是简单、通用性高,可以以任何生成标准XML程序交互,处理大量数据时,速度慢。WebService,通用的叫做SOAP,用database返回数据,没有内建的Pagging功能,不能直接返回DataSet,并且大型数据交互速度慢;比较通用的接口,大多服务器通信都支持。Remoting是基于AMF的数据交互,速度以及性能比较好,数据传输类型比较丰富,传输效率高,对各种后台的支持也比较好;但是需要后台服务端装相应版本的Flash Remoting模块才可以使用。Socket是基于socket通讯,可以建立持久连接,在网游、多人聊天、视频等应用比较有优势。

     本文学习通过WebService访问数据。

     首先准备后台服务端的Web Service:

显示行号 复制代码
  1. public class SimpleService : System.Web.Services.WebService {
    
  2.     public SimpleService () {
        }
        [WebMethod]
        public string HelloWorld() {
            return "Hello World";
        }
    
  3.    [WebMethod]
        public UserInfo GetUserInfo()
       {
            return new UserInfo
            {
                UserID = 1,
                UserName = "Test"
            };
       }
    }
    public class UserInfo
    {
        public int UserID{get; set;}
        public string UserName { get; set; }
    }
  4. 
    

       检查服务端Web Service:

image

       前端mx:WebService设置:wsdl设置Web Service的URI,load的OnRequest()指定testService调用Web Service的HelloWorld()。onSuccess()方法处理调用成功的信息,onFault()处理调用失败的信息。

显示行号 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        <mx:Script>
            <![CDATA[
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                private function onRequest():void{
                    testService.HelloWorld();
                }
    
  2.            
                private function onSuccess(event:ResultEvent):void{
                    trace("访ebService成);
                    trace(event.result.toString());
                }
                
                private function onFault(event:FaultEvent):void{
                    trace("访ebService失);
                    trace(event.message.toString());
                }
            ]]>
        </mx:Script>
        <mx:WebService id="testService" wsdl="http://localhost/SimpleService.asmx?wsdl" useProxy="false" load="onRequest()" >
            <mx:operation name="HelloWorld" result="onSuccess(event)" fault="onFault(event)"/>
        </mx:WebService>
    </mx:Application>

        Debug之后可以看到Console如下的信息:

image

posted @ 2010-06-24 22:01  Asharp  阅读(840)  评论(0编辑  收藏  举报