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

你可能感兴趣的:(webservice)