as3 Получение ответа на запрос http Head - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь прочитать ответ на запрос метода http Head, но ничего не получаю, так как ответ на запросы head не содержит тела, но мне нужно получить ['content-length'], который возвращается заголовок это мой код

function GetSize() {
        var request: URLRequest = new URLRequest(url);
        request.method = URLRequestMethod.HEAD;
        var loader: URLLoader = new URLLoader();
        loader.addEventListener(Event.COMPLETE, DownloadFileSize, false, 0, true);

        loader.load(request);
    }
    function DownloadFileSize(ev: Event) {
        trace("the answer is :"+(URLLoader)(ev.currentTarget).data);
    }

как я могу это исправить?

1 Ответ

0 голосов
/ 03 мая 2018

EVENT.COMPLETE - это лишь одно из многих событий, которые может выдать URLLoader. Например, он также может выдавать HTTPStatusEvent.httpResponseStatus , который обладает свойством responseHeaders. Дайте этому попытку.

Вот пример кода, предоставленного документацией для HttpStatusEvent

package {
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.HTTPStatusEvent;

public class HTTPStatusEventExample extends Sprite {

    public function HTTPStatusEventExample() {
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);

        var request:URLRequest = new URLRequest("http://www.[yourDomain].com/MissingFile.html");
        loader.load(request);
    }

    private function httpStatusHandler(event:HTTPStatusEvent):void {
        trace("httpStatusHandler: " + event);
        trace("status: " + event.status);
    }
}

}

А для вашего варианта использования (получение заголовков):

private function httpStatusHandler(event:HTTPStatusEvent):void {
        for(var i:int = 0;i<event.responseHeaders.length;i++){
            trace(i.toString() + ":" + event.responseHeaders[i].name + " - " + event.responseHeaders[i].value);
        }
}

Я не тестировал этот код, но, согласно вашему комментарию, этот подход работает.

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