首頁  >  文章  >  後端開發  >  Flex與.NET互通(二):基於WebService的資料存取(上)

Flex與.NET互通(二):基於WebService的資料存取(上)

巴扎黑
巴扎黑原創
2016-12-20 15:17:131129瀏覽

Flex提供了標籤來直接存取遠端數據,這用於與各種不同語言環境開發提供的遠端服務端資料來源(如WebService)進行資料互動通訊顯得更容易.

本文以.NET平台下C#語言開發的WebService作為遠端資料來源,詳細介紹Flex與.NET的WebService的資料通訊知識點;包括連接WebService,遠端呼叫WebService方法,給WebService方法傳遞參數等相關知識點。三個標籤的使用方法基本上是一樣,這裡就以標籤為例來介紹。

首先看看如下程式碼區塊:

12wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl"
3useProxy="false">
4
5
6

wsdl屬性指定到要存取的WebService的wsdl位址既可,其中定義了兩個操作標籤(),分別對應於WebService中定義的WebMethod方法。 result屬性標記存取WebService方法成功後的處理函數;fault則相反,指定於存取失敗的處理函數。以上兩個對應於WebService的WebMethod方法如下:

1///


2///返回字串
3///

4///
5[WebMethod]
6publicstringHelloWorld()
7{
8return"HelloWorld";
9}
10
11///
12///回傳一個簡單物件
11///
12///回傳一個簡單物件
13//12///// 14///
15[WebMethod]
16publicBookGetBook()
17{
18returnnewBook
19{
20Id=1,
21Name="三國演義=100
24};
25}

如上便是WebService方法定義和在Flex的客戶端(mxml)透過標籤來存取WebService的完整流程,下面我們來看看在Flex的客戶端怎麼去呼叫WebService所定義的方法:

1<script><p>23importmx.controls.Alert;<br>4importmx.rpc.events.FaultEvent;<br>5importmx.rpc.events.Result;<br> **<br>8*向WebService發起請求--呼叫HelloWorld方法,dataService為<webservice>的id<br>9**/<br>10internalfunctiononRequest():void<br>11{<br>12dataService.HelloWorld();<br>13}<br>14<br>15/**<br>16*請求成功處理回傳結果<br>17**/<br>18internalfunctiononSuccultx <br>20Alert.show(evt.result.toString());<br>21}<br>22<br>23<br>24/**<br>25*請求失敗的處理函數<br>26**/<br>27internalfunctiononFault(evt:FaultEvent):void<br>27internalfunctiononFault(evt:FaultEvent):void<br>27internalfunctiononFault(evt:FaultEvent):void<br>27internalfunctiononFault(evt:FaultEvent):void<br>28{Tk(o. WebService失敗!");<br>30}<br>31]]><br>32</webservice></p></script>
透過上面的調用,就可以完成一個Flex和.NET WebService的交互。當然我們在Flash/Flex的客戶端呼叫WebService也是可以傳遞參數的,如下WebService的WebMethod定義:

1///

2///將傳遞進來的參數轉換為大寫字元回傳
3/// summary>
4///
5///
6[WebMethod]
7publicstringConvertToUpper(stringvalue)
8{
9returnvalue.ToperUp);
10}

透過在標籤下設定執行該方法就可以存取了,如下:

1

1 /**
2*向WebService發起請求
3**/
4internalfunctiononRequest():void
5{
6//dataService.HelloWorld();
7dataService.ConvertToUpper("abcdefg");
8}


另外,我們還可以透過來傳遞參數,這裡只需要知道裡的參數配置與WebService提供的WebMethod方法參數同名就OK。

回到前面看看WebService的方法定義,其中一個方法GetBook是返回的一個Book對象,如果是返回的對像我們在Flex的客戶端怎麼來取得這個對象的值呢?詳細請參考以下程式碼範例:

1internalfunctiononObject():void
2{
3dataService.GetBook();
4}
5
6internalfunctiononObjectSuccess(evt:ResultEvent):void
7{
8/ult/ult然後直接存取屬性便OK
9Alert.show(evt.result.Name);
10}
11
12/**
13*請求失敗的處理函數
14**/
15internalfunctiononFault(evt:FaultEvent):void
16{
16{
17Alert.show( "存取WebService失敗!");

18}


🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn