Flash и код состояния HTTP 207 - PullRequest
2 голосов
/ 05 апреля 2011

Возникли проблемы с получением флэш-памяти для распознавания действительного кода ответа HTTP (207).Как ни странно, пока что это происходит только в FireFox ... прекрасно работает в Chrome.

Вот код, который генерирует ошибки ниже.Кажется, для возврата HTTP-статуса 0 в FlashBug .. должны быть обработаны по-другому в 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.

1 Ответ

3 голосов
/ 06 апреля 2011

К сожалению, вы не получите полный набор кодов ответов HTTP во Flash во всех браузерах. Flash Player не имеет собственной обработки HTTP (при запуске в качестве плагина браузера) и вместо этого использует хост-браузер для вызовов HTTP. И где-то вдоль линии между браузером и плагином информация, такая как некоторые коды ответов и заголовки, уменьшается.

В этой статье Arc90 (компания, которая занимается разработкой Readability) обсуждается проблема, она несколько устарела, и, как я понимаю, их решение не будет работать во всех случаях, но может дать некоторое представление о проблеме: http://lab.arc90.com/2008/03/25/flex-as3-library-restservice/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...