2014-09-03 114 views
0

我試圖在Flash視頻播放器中加載廣告,然後下載VAST文件中鏈接的所有1x1 Impression gif。一切正常,直到我打這個文件:HTTP狀態碼503在Flash中拋出錯誤#2030

link to bad file

該文件返回狀態代碼302(臨時移動)與Location頭指向http://httpstat.us/503 - 返回503錯誤

的一個非常奇怪的方式發生這種情況時,我在Flash中收到錯誤#2030:「遇到文件結尾。」

查看http://httpstat.us/503,Content-Length是23,與返回的文本長度(「503 Service Unavailable」)完全一致,所以我不認爲這是服務器響應的問題。

在我的Flash文件,我已綁定聽衆都引發SecurityError和IO錯誤事件:

loader.addEventListener(Event.OPEN, onOpen); 
    loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onStatus); 
    loader.addEventListener(ProgressEvent.PROGRESS, onProgress); 
    loader.addEventListener(Event.COMPLETE, onComplete); 

    loader.addEventListener(IOErrorEvent.IO_ERROR, onError); 
    loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); 

    loader.load(request); 

所以我的問題是:什麼是我做錯了什麼?我該如何檢測和處理Flash中的狀態碼503?

+0

我有標準_Error#2032:流Error._該URL – fsbmain 2014-09-03 15:58:48

+0

@fsbmain這是奇怪的...我有一個全球性的聯合國抓住錯誤處理程序,它只記錄時間和錯誤ID,併發布「12:08:29 PM - 檢測到錯誤 - 錯誤:#2030」。堆棧跟蹤只是兩行:「flash.net.URLLoader.onComplete」,其次是「flash.net.URLStream.readBytes」 – stevendesu 2014-09-03 16:09:45

+0

@fsbmain我只是做了一些測試,發現當我打開本地的SWF文件(文件://C:\ ...)我得到錯誤#2032。當我在網上打開它時(http:// ...),我得到錯誤#2030。所以它可能與Flash Sandbox相關。 – stevendesu 2014-09-03 16:28:28

回答

1

這個實驗後,我發現這是Flash Player中的錯誤 - 當您收到302 Flash Player的祕密旋轉了一個新的URLLoader處理第二個請求,但映射所有事件和函數調用的。因爲它是一個單獨的對象,所以拋出的任何錯誤都不會被捕獲。

我的解決方案是爲503錯誤添加一個全局的靜態計數器,然後有一個未捕獲的錯誤處理程序。

  1. 接收503錯誤,增加計數器
  2. ,接收未被捕獲的錯誤,檢查計數器:
    • 如果錯誤ID是2030和計數器> 0時,遞減計數器
    • 否則,拋出錯誤