URLRequest в AS3 не может прочитать правильный контент, когда сервер возвращает 403
Я использую URLRequest в клиенте Flash для получения некоторой информации от службы, служба проверит параметр в URL-адресе запроса, если параметр недействителен, сервер может вернуть 403 с некоторым содержимым в теле http, и мне нужно проанализировать содержимое, содержимое является строкой json:
{"code":3, "msg":"invalid channel"}
К сожалению, иногда URLRequest не может прочитать содержимое из URLStream, stream.bytesAvailable равно 0, кажется, что URLStream читает нулевые данные. Есть ли какая-либо ошибка в URLRequest? Или это только потому, что я использую это неправильно?
Вот код:
public function test() {
stream = new URLStream();
request = new URLRequest(url);
configureListeners(stream);
var timer:Timer = new Timer(2000, 10);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
}
private function onTimer(e:TimerEvent):void {
request.url = url + "×tamp=" + getTimer();
trace("try to load: " + request.url);
stream.load(request);
}
private function configureListeners(dispatcher:EventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
parseHeader();
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event.toString());
trace(stream.bytesAvailable + ", " + event.target.bytesAvailable + ", " + event.target.length);
}
Вот журнал: введите описание изображения здесь