您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Flex與.NET互操作中基于WebService數據訪問的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Flex與.NET互操作:基于WebService的數據訪問
Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>標簽來直接訪問遠程數據,這用于與各種不同語言環境開發提供的遠程服務端數據源(如WebService)進行數據交互通信顯得更加容易.
本文以.NET平臺下C#語言開發的WebService作為遠程數據源,詳細介紹Flex與.NET的WebService的數據通信知識點;包括連接WebService,遠程調用WebService方法,給WebService方法傳遞參數等相關知識點。三個標簽的使用方法基本上是一樣,這里就以<mx:WebService>標簽為例進行介紹。
連接WebService
首先看看如下代碼塊:
1<mx:WebServiceidmx:WebServiceid="dataService" 2wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl" 3useProxy="false"> 4<mx:operationnamemx:operationname="HelloWorld"result="onSuccess(event)"fault="onFault(event)"/> 5<mx:operationnamemx:operationname="GetBook"fault="onFault(event)"result="onObjectSuccess(event)"/> 6</mx:WebService>
wsdl屬性指定到要訪問的WebService的wsdl地址既可,其中定義了兩個操作標簽(<mx:operation>),分別對應于WebService中定義的WebMethod方法。
result屬性標記訪問WebService方法成功后的處理函數;fault則相反,指定于訪問失敗的處理函數。以上兩個<mx:operation>對應于WebService的WebMethod方法如下:
1///<summary> 2///返回字符串 3///</summary> 4///<returns></returns> 5[WebMethod] 6publicstringHelloWorld() 7{ 8return"HelloWorld"; 9} 10 11///<summary> 12///返回一個簡單對象 13///</summary> 14///<returns></returns> 15[WebMethod] 16publicBookGetBook() 17{ 18returnnewBook 19{ 20Id=1, 21Name="三國演義", 22Author="羅貫中", 23Price=100 24}; 25}
調用WebService所定義方法
完整流程,下面我們來看看在Flex的客戶端怎么去調用WebService所定義的方法:
1<mx:Script> 2<![CDATA[ 3importmx.controls.Alert; 4importmx.rpc.events.FaultEvent; 5importmx.rpc.events.ResultEvent; 6 7/** 8*向WebService發起請求--調用HelloWorld方法,dataService為<mx:WebService>的id 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</mx:Script>
給WebService方法傳遞參數
通過上面的調用,就可以完成一個Flex和.NETWebService的交互。當然我們在Flash/Flex的客戶端調用WebService也是可以傳遞參數的,如下WebService的WebMethod定義:
1///<summary> 2///將傳遞進來的參數轉化為大寫字符返回 3///</summary> 4///<paramnameparamname="value"></param> 5///<returns></returns> 6[WebMethod] 7publicstringConvertToUpper(stringvalue) 8{ 9returnvalue.ToUpper(); 10}
◆通過在<mx:WebService>標簽下配置<mx:operation>執行該方法就可以訪問了,如下:
1<mx:operationnamemx:operationname="ConvertToUpper"result="onSuccess(event)"fault="onFault(event)"/> 1/** 2*向WebService發起請求 3**/ 4internalfunctiononRequest():void 5{ 6//dataService.HelloWorld(); 7dataService.ConvertToUpper("abcdefg"); 8}
另外,我們還可以通過<mx:request>來傳遞參數,這里只需要知道<mx:request></mx:request>里的參數配置與WebService提供的WebMethod方法參數同名就OK。
回到前面看看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}如上便完成了服務端的WebService返回對象到客戶端的調用。
關于“Flex與.NET互操作中基于WebService數據訪問的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。