FLEX與HttpService通信

 

FLEX中調用HttpService的方法有兩種

第一種是簡單應用,適用於傳遞簡單參數或者不帶參,如調用遠程XML文件,用MXML標籤,如

<mx:HTTPService
   id="myHttpService"
   result="myResult(event)"
   fault="myFault(event)"
   method="POST"
   url="http://127.0.0.1:8080/httpService/httpservcie.do ">
  <mx:request xmlns="">
   <userName>-***</userName>
   <userPwd>***</userPwd>
  </mx:request>
 </mx:HTTPService>

需要注意的是必須定義id,result,和method(xml除外),request中傳遞參數。最後在as中調用不帶參的send方法發送請求

myHttpService.send();在 myResult(event)中對返回的結果進行處理

返回的是一個ResultEvent類

  private function myResult(event:ResultEvent){
    var msg = event.result.toString();
    Alert.show(msg);
   }

Java端serveerlet代碼

在介紹第二種方法:改寫httpservice類,這裏直接參考鄭老大的代碼

 

 

主要是對map進行封裝,傳進調用的服務名和方法名。

接下來最關鍵的一步就是封裝參數,把Bean轉化爲XML

VBean2XML.doConvert(key,params[key]);

再將XML轉化爲XMLString,賦到參數屬性上

map[key] = arg.toXMLString();

最後調用帶參數的send方法發送請求

hs.send(map);。

在接收方面

事先規定接收數據類型,報錯的處理,和接收數據的處理

                hs.resultFormat = HTTPService.RESULT_FORMAT_XML;
               
                //var paramsXML:XML = buildXMLMessageBody(method,params);
                hs.addEventListener(FaultEvent.FAULT,faultHandler);
                hs.addEventListener(ResultEvent.RESULT,callBackFunction);

 

把所取得的XML轉化爲Bean。

JAVA端代碼

發佈了30 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章