我是一個完整的Flex noob,所以我提前道歉,如果我失去了一些明顯的東西。如何讀取Flex中的Django HTTPResponse?
我在Flex中寫了一個相當簡單的文件上傳器,它通過URLRequest(FileReference對象處理上載)調用我的Django後端。我的上傳按預期工作,我有Django返回一個HTTPResponse對象。因此,我想閱讀HTTPResponse對象的內容。
有什麼想法?
我是一個完整的Flex noob,所以我提前道歉,如果我失去了一些明顯的東西。如何讀取Flex中的Django HTTPResponse?
我在Flex中寫了一個相當簡單的文件上傳器,它通過URLRequest(FileReference對象處理上載)調用我的Django後端。我的上傳按預期工作,我有Django返回一個HTTPResponse對象。因此,我想閱讀HTTPResponse對象的內容。
有什麼想法?
沿
<mx:HTTPService id="myHTTPRequest"
url="{whatever your url request is}"
result="resultHandler(event)"
fault="faultHandler(event)"
showBusyCursor="true"
resultFormat="object">
再行resultHandler像這樣
裏面的東西private function resultHandler (event : ResultEvent) : void {
var obj : Object = event.result;
//do something with returned object
}
在resultHandler點調試以查看exaclty返回什麼,確保它的內容應該返回。
通過它獲取客戶端的時候,它只是一個普通的HTTP響應,以便把它像任何其他響應
您可以訪問您的onComplete事件處理程序,像這樣的迴應:
private function saveCompleteHandler(event:Event):void {
var loader:URLLoader = event.currentTarget as URLLoader;
trace("saveCompleteHandler - event returned:" + loader.data as String);
}
我們這樣做這讓JSON弗朗一個Java Web服務。
你只需要擺在首位使用的URLLoader加載的URLRequest:
var loader:URLLoader = new URLLoader();
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, statusHandler, 10000);
loader.addEventListener(IOErrorEvent.IO_ERROR, saveErrorHandler, 10000);
loader.addEventListener(Event.COMPLETE, saveCompleteHandler, 10000);
var request:URLRequest = new URLRequest("http:/whereverer");
request.method = URLRequestMethod.GET;
loader.load(request);
我也是新的彎曲和我在同一個問題做一個上傳到一個Java休息後端的時候跑了,我使用FileReference上的DateEvent來解決它。爲了獲得響應數據使用這樣的事情。:
var fileRef:FileReference = new FileReference();
fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, responseHandler);
var request:URLRequest = new URLRequest("yourUrl");
fileRef.upload(request, "fileData");
private function responseHandler(event:DataEvent):void {
var response:XML = new XML(event.data);
//Note the DataEvent: this is the event that holds the response.
//I sent back data as xml
}
你的反應應該永遠是一個成功的HTTP狀態代碼(200),如果你的後臺發送狀態500碼也不會觸發DateEvent。服務器錯誤仍然可以被HTTPStatusEvent捕獲,但是您無法訪問響應。
我想去這條路線,但FileReference.upload()期望URLRequest作爲第一個參數。我試過使用「作爲URLRequest」,但沒有運氣。有什麼建議? – Huuuze 2009-01-16 16:50:21