2011-04-05 209 views
2

使Flash無法識別有效的HTTP響應代碼(207)有些困難。奇怪的是,這似乎只發生在FireFox到目前爲止..在Chrome中工作正常。Flash和HTTP狀態碼207

下面是生成以下錯誤的代碼。它似乎在FlashBug中返回HTTP狀態0 ..必須在Chrome中以不同的方式處理?有什麼辦法仍然可以得到答覆機構嗎?

沒有我做的似乎能夠讓我在這種情況下的響應正文。 :(

// Initiate a call to a Patron URL 
    private function callPatron(url:String, callback:Function) { 
     trace("Calling Patron"); 
     _loader.addEventListener(Event.COMPLETE, function(e:Event) { callback(parseResponse(e)) }); 
     _loader.addEventListener(IOErrorEvent.IO_ERROR, gotError); 
     _loader.addEventListener("httpResponseStatus", onStatus); 
     _loader.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
     _loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onStatus);   
     _loader.load(new URLRequest(url)); 
    } 

    private function progressHandler(event:ProgressEvent) { 
     trace("Progresso"); 
    } 

    private function onStatus(event:HTTPStatusEvent) { 
     trace('Got HTTP status: ' + event.status); 
     trace(event.toString()); 
    } 

    private function gotError(event:IOErrorEvent) { 
     trace('IOError: ' + event.text); 
     var loader:URLLoader = URLLoader(event.target); 
     trace(loader.content); 
     trace('WORD.'); 
    } 

    // Decode a Patron response event and return the parsed object 
    public function parseResponse(event:Event):Object { 
     trace("Got a Patron response"); 
     var loader:URLLoader = URLLoader(event.target); 
     return JSON.decode(loader.data); 
    } 

..和輸出:

Initializing 
Calling Patron 
Got HTTP status: 0 
[HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0 responseURL=null] 
IOError: Error #2032: Stream Error. URL: http://www.zappos.com/api/Product?key=5f25a02d8015e05ba3874e0b45be0379fe8b3c21&styleId=["1377484","1312254","269758","1519409","1325534","1152368"]&includes=["description","productRating","styles","thumbnailImageUrl"] 
WORD. 

回答

3

不幸的是,你不會得到全套的Flash中的HTTP響應代碼,在所有瀏覽器的Flash播放器不具備它自己的HTTP處理(當作爲瀏覽器插件運行時),而是使用託管瀏覽器進行HTTP調用,並且在瀏覽器和插件之間的某個位置,某些響應代碼和標頭等信息會減少。由Arc90(Readability公司背後的公司)討論這個問題,它是一個按照我的理解,它們的解決方案在所有情況下都不起作用,但它可能會讓您對問題有所瞭解:http://lab.arc90.com/2008/03/25/flex-as3-library-restservice/

+0

謝謝,我最終嘗試使用as3httpclient - 一個類似的基於套接字的客戶端。但它看起來不像基於網絡的閃光燈那麼熱。 :/ – makenai 2011-04-06 06:18:18