使用Flex 最重要的部分之一就是和服務器以及數據庫的通訊。本章的內容主要關注與配置一個Flex 應用程序來與服務器通訊以及處理從服務器發到應用程序的數據,這些數據從三種主要的服務器應用之間的通訊方式傳送。
Flex 提供了三個類來與服務器通訊: HTTPService,RemoteObject 以及WebService。
HTTPService 類提供了使用超文本傳輸協議(HTTP)與服務器通訊的方式。一個Flex 應用程序可以使用GET 或者POST 請求來發送數據到一個服務器并且處理這個請求返回的XML 或者字符串。使用HTTPService 類,你可以與PHP 頁面,ColdFusion 頁面,JavaServer頁面( jsp),Java servlet, Ruby onRails, 以及ASP 動態網頁通訊。你可以使用RemoteObject類通過AMF格式對象來和服務器通訊。RemoteObject也可以與Java 或者ColdFusion remoting網關或者使用了開源項目的.NET 以及PHP 程序來通訊,開源項目包括AMFPHP,SabreAMF 以及WebORB。WebService 類可以和使用web 服務描述語言(WSDL)所預先定義接口的Web 服務通過XML 以及基于SOAP 的XML 來通訊。
開始創建一個服務組件,你需要配置服務的屬性,設定相對于服務器的所需要用來發送請求和接收數據的URL 地址,以及相關的預期的數據類型的信息。對于HTTPService 對象,你需要設定傳輸參數到服務器的方法,GET 或者POST,以及resultFormat –返回值格式。對于WebService 組件,你必須要要設定服務的WSDL 文檔的URL,并且在<mx:Operation>標簽里面描述WebService 中的每個操作,以及設定每個操作的得到結果(result)和錯誤(fault)處理函數。對于RemoteObject 類, 服務的URL 需要在services-config.xml 文件里面描述,這個xml 文件會被編譯到SWF 文件中。服務的每個方法都需要被定義,他們得到的結果和錯誤的處理函數也需要被定義。
在做了一個呼叫到一個HTTPService 之后,數據會從服務返回,并被放置到服務組件所包含的lastResult 對象。服務組件的resultFormat 屬性默認是一個ActionScript 對象。服務返回的所有數據作為對象的一個屬性表現。從WebService 或者HTTPService 返回的任意XML 數據都會被Flex 轉化成各自的基礎類型,數字,字符串,布爾值以及日期。如果需要一個強類型對象,自定一個數據類型,然后從lastResult 中存貯的對象創建一個實例。
WebService和RemoteObject 類使用一個result 事件處理函數來處理返回的數據,一個fault 事件處理函數來處理返回的錯誤。所有的返回數據處理都會在服務指定的result 處理函數內部完成。
目錄
18.1.配置HTTPService
18.2.在Flex程序之間使用RESTful通信
18.3.配置和連接RemoteObject
18.4.使用AMFPHP 1.9中的FlexRemoting
18.5.使用IExternalizable接口自定義序列化
18.6.跟蹤多個同時發生的服務調用的結果
18.7.使用發布/訂閱消息
18.8.注冊服務端數據類型
18.9.與WebService通信
18.10.添加SOAP頭到WebSerice請求
18.11.解析WeBService的返回的SOAP響應
18.12.使用SecureAMFChannel進行AMF的安全通信
18.13.通過二進制Socket發送和接收二進制數據
18.14.XMLSocket通信
新聞熱點
疑難解答