国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

18.2.在Flex程序之間使用RESTful通信

2024-04-27 13:52:25
字體:
供稿:網(wǎng)友
18.2.1. 問題
我想要整合一個Flex 應(yīng)用程序和一臺使用RESTful 或者表述性狀態(tài)轉(zhuǎn)移風(fēng)格通訊的服務(wù)器,例如Rails 或者其他服務(wù)器。
18.2.2. 解決辦法
創(chuàng)建一個HTTPService 對象來使用合適的路徑通過POST 和GET 方法和你的服務(wù)器通訊,呼叫遠(yuǎn)端服務(wù)器上的方法。
18.2.3. 討論
所謂RESTful 的服務(wù)一般被用來描述一個服務(wù)使用所有4 個可能的HTTP 頭:PUT,POST,DELETE 以及GET。這四個頭通常對應(yīng)四種基礎(chǔ)的數(shù)據(jù)訪問操作:創(chuàng)建,讀取,更新以及刪除,他們一般和常說的CRUD 一起使用。在實踐中,一個單獨的重載的服務(wù)端方法以來http頭來執(zhí)行四種基礎(chǔ)數(shù)據(jù)訪問操作。在REST 類應(yīng)用中,方法時常會被映射到資源,這樣四種數(shù)據(jù)訪問方法,CRUD 允許資源的創(chuàng)建,刪除,更新以及獲取。這個資源可以是簡單資源,數(shù)據(jù)庫的一個表,或者一個復(fù)雜的模型對象。

Flash 播放器限制了只能使用GET 和POST 方法,意思就是任意介于FLEX 應(yīng)用與服務(wù)之間的通訊都需要指明DELETE 或者PUT 方法使用不同與標(biāo)準(zhǔn)REST 的方法,例如附加他們到一個GET 或POST 信息上。

發(fā)送一個PUT 命令到一個Rails 應(yīng)用,你可以這樣做:
+展開
-ActionScript
var request:URLRequest = new URLRequest();
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, resultHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpStatusHandler);
request.url = "http://rails/view/resource";
// Set the request type as POST and send the DELETE command as
// a variable in the data of the request
request.method = URLRequestMethod.POST;
request.data._method = "DELETE";
loader.load(request);

Ror(Ruby on Rails,一種web 敏捷開發(fā)框架)在正確的HTTP 方法不能被使用的時候,允許_methdo 變量來申明描述的方法。對于其他類型的REST 類服務(wù),類似的操作都會被使用到。

對于HTTPService 對象,你可以使用BlazeDS 或者Adobe LiveCycle 來配合它。HTTPService定義了一個useProxy 屬性,當(dāng)它設(shè)為true 會指定flash 播放器只與services-config.xml 文件中的服務(wù)器定義來通訊。一個請求會建立并且發(fā)送一個被代理的PUT/DELETE/OPTIONS(以及其他請求)被發(fā)送到Adobe LiveCycle 或者BlazeDS 服務(wù)器,然后服務(wù)器會建立并且發(fā)送實際的HTTP 請求并且返回反饋內(nèi)容到flash 播放器。代理同時也控制來自于HTTP 500 代碼服務(wù)器錯誤的失敗反饋,它可以返回給flash 播放器讓HTTPService 可以處理。

當(dāng)你配置好HTTPService 對象使用BlazeDS 或者lifecycle 代理之后,你可以在HTTPService上通過設(shè)定method 屬性來使用服務(wù)器的全部范圍的Http 頭。
+展開
-XML
<mx:HTTPService id="proxyService"
destination="http://localhost/app/url"/>

<mx:Script>
<![CDATA[
private function sendPut():void {
proxyService.method = "DELETE";
proxyService.send("id=2");
}

]]>
</mx:Script>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿克苏市| 宁晋县| 丰都县| 五指山市| 曲周县| 镇巴县| 柞水县| 霍山县| 斗六市| 宁陵县| 廉江市| 子长县| 靖宇县| 迁西县| 巴里| 睢宁县| 东至县| 龙井市| 沁源县| 木兰县| 巨鹿县| 茌平县| 禄劝| 鹤山市| 屯门区| 墨玉县| 卢氏县| 富锦市| 天峨县| 西盟| 芷江| 沿河| 仁布县| 铜川市| 娄底市| 望江县| 通山县| 化隆| 石河子市| 沽源县| 溧水县|