Flash AS3 читает ответ прокси-сервера с помощью URLLoader

Я использую встроенную флэш-память "swf" в локальной сети с прокси-сервером. Прокси-сервер прерывает некоторые URL-адреса и возвращает мою информацию об использовании. Я пытаюсь получить доступ к этой информации, отправив эти URL. Я вижу этот трафик в firebug, но URLLoader, похоже, не читает его. Не завершено ни событие Завершение, ни событие прогресса. Я пробовал URLStream также с таймером, но availableBytes всегда были нулевыми. Можно ли прочитать эту информацию?

  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"]

1 ответ

"Но URLLoader вроде бы не читает..."

использование URLStream (без таймера, потому что чего это вообще достигается?), чтобы добраться до ссылки и внутри вашего соответствующего элемента progressEvent используйте readUTFBytes чтобы получить любые текстовые данные ответа, предоставленные сервером этой ссылки. Используйте progressEvent, чтобы также проверить размер любых полученных байтов (событие запускается несколько раз, получая пакеты по 64 КБ, пока не будут загружены полные данные).

об ошибке № 2048:
URLloader это декодер для визуальных данных (jpg, png, swf, text), но для нетекстовых данных он ожидает, что crossdomain.xml существует на другом сервере, с которого вы обращаетесь к swf (обе стороны также должны иметь совпадающие http или же https, Опять же, лучший способ обойти это - просто загрузить байты в байтовый массив (через URLStream, но progressEvents теперь должен записать в ваш байтовый массив), а затем использовать позже. URLLoader.loadBytes( yourSWFBytes );

Другие вопросы по тегам