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端代碼