2016-12-26 113 views
0

我正在LAN網絡內使用代理服務器運行嵌入式閃存'swf'。代理服務器中斷某些URL並返回我的使用信息。我正試圖通過發送這些網址來訪問這些信息。我可以在螢火蟲中看到這個流量,但URLLoader似乎沒有讀取它。完成事件或進度事件均未被解僱。我也用計時器嘗試了URLStream,但availableBytes總是零。是否可以讀取這些信息?Flash AS3使用URLLoader讀取代理服務器響應

private var getLoader:URLLoader = new URLLoader(); 
    private var sendRequest:URLRequest = new URLRequest(); 
    public function XDomain() { 
    sendRequest= new URLRequest("requesturl"); 
    getLoader.addEventListener(Event.COMPLETE, eventHandler); 
    getLoader.addEventListener(ProgressEvent.PROGRESS,eventHandler2); 
    getLoader.load(sendRequest); 
    } 
    private function eventHandler(event:Event):void { 
    trace("running"); 
    } 
    private function eventHandler2(event:ProgressEvent):void { 
    trace("runninhg progresss"); 
    } 

在此先感謝// 編輯:我有這個安全錯誤

[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"] 
+0

請收聽SecurityErrorEvents和HTTPStatusEvents,讓我們看看它說什麼。 – phasma

+0

@Jacob HTTPStatusEvent listner阻止我的代碼。是否有我缺少的東西? //getLoader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS,httpHandler); //在此之後不運行.trace。 – feminkk

+0

_「帶有定時器的URLStream」_爲什麼?如果你讓它自然地工作,沒有計時器中斷,會有結果嗎? URLStream是您最好的選擇,因爲它提供了對服務器響應的原始訪問。如果仍然失敗,請顯示您的URLStream代碼或提供可重新生成問題的可測試鏈接。 –

回答

0

「但的URLLoader似乎並沒有讀它......」

使用URLStream(沒有定時器,cos甚麼那甚至達到?)以達到鏈接,並在相關的progressEvent中使用readUTFBytes獲取由該鏈接的服務器提供的任何文本響應數據。使用progressEvent來檢查任何接收字節的大小(事件觸發多次,獲得64kb數據包,直到下載完整的數據)。

有關錯誤#2048:
URLloader是可視化數據(JPG,PNG,SWF,文本),但對於非文本數據的解碼器,預計一的crossdomain.xml在其他的服務器存在你正在訪問swf(雙方還必須有一個匹配的httphttps)最好的方法繞過這個只是加載字節到一個字節數組(通過URLStream,但progressEvents現在應該寫入您的字節數組)然後使用URLLoader.loadBytes(yourSWFBytes);

+0

感謝您的回覆。事件不會使用URLStream觸發。我也會得到相同的安全錯誤。 – feminkk

+0

_「事件不會觸發」_然後有**沒有連接**。 _「我也得到相同的安全錯誤」_假,解碼自己的字節時沒有安全問題。通過來自任何外部服務器的'readBytes'來填充這些字節甚至沒有問題。這就是爲什麼它是一個**實際的解決方法**。當你使用getLoader.load(myBytes);'load'被告知解碼你自己的圖像字節時,如果你給了一些外部URL(如'sendRequest'),那麼你強迫它假設你正在竊取內容,所以當沒有找到外部服務器上存在的權限文件時,它會有安全錯誤 –

+0

[**'Edit' **](http://stackoverflow.com/posts/41331039/edit)您的問題顯示了您如何處理URLStream,字節和解碼過程的示例。你的上述條件在該系統中都是未知的。 PS:所以如果URLStream沒有運行(沒有檢測到進度),那麼你以後如何得到安全錯誤?在嘗試使用URLLoader解碼(顯示)之前,字節大小是否與swf文件大小相匹配?無論如何,我會看你的代碼,如果你更新... –