Просмотр полной версии : Flash режет ответ на запрос
RigidFlasher
26.02.2014, 14:00
Здравствуйте.
Столкнулся вот с такой проблемой. Флэшка отправляет запрос на сервер, а в ответе сервера content_length из заголовка меньше, чем реальная длина ответа. Поэтому ответ обрезается. Можно ли с этим что-нибудь сделать, если код сервера я не могу поправить?
Мой код выглядит так
_urlRequest = new URLRequest(this._url);
_urlRequest.method = URLRequestMethod.GET;
_urlLoader = new URLLoader();
_urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
_urlLoader.addEventListener(Event.COMPLETE, _onLoaded);
private function _onLoaded(event:Event):void
{
// вот тут всё ломается, потому что конец у XML обрезан
this._resultXML = new XML(event.target.data);
}
вот так посмотрите, правильно ли приходит ответ, если все нормально, то проблема когда строка преобразуется в xml
private function _onLoaded(event:Event):void
{
trace(event.target.data);
}
RigidFlasher
26.02.2014, 14:50
вот так посмотрите, правильно ли приходит ответ, если все нормально, то проблема когда строка преобразуется в xml
private function _onLoaded(event:Event):void
{
trace(event.target.data);
}
уже смотрел. строка обрезана, поэтому она перестаёт быть валидным XML.
может быть что-то с ограничением на максимальную длину get запроса (https://www.google.ru/search?q=максимальная+длина+get+запроса), плохо понимаю в этой кухне, чтобы сказать конкретнее
RigidFlasher
26.02.2014, 15:02
может быть что-то с ограничением на максимальную длину get запроса (https://www.google.ru/search?q=максимальная+длина+get+запроса), плохо понимаю в этой кухне, чтобы сказать конкретнее
сам запрос достаточно короткий, меньше 255 байт
Я бы поснифал запросы, чтобы удостовериться, что сервер отдает корректные данные.
gloomyBrain
26.02.2014, 21:06
Я бы поснифал запросы, чтобы удостовериться, что сервер отдает корректные данные.
По-моему, очевидно , что сервер отдает невалидные данные, ведь content-length не соответствует реальной длине.
Если с сервером ничего сделать нельзя (руки, например, оторвать серверному программисту), то рекомендую попробовать URLStream (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/net/URLStream.html)
RigidFlasher
27.02.2014, 07:10
Я бы поснифал запросы, чтобы удостовериться, что сервер отдает корректные данные.
Да, запросы я снифил. Корректно всё, кроме длины в заголовке.
По-моему, очевидно , что сервер отдает невалидные данные, ведь content-length не соответствует реальной длине.
Если с сервером ничего сделать нельзя (руки, например, оторвать серверному программисту), то рекомендую попробовать URLStream (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/net/URLStream.html)
Посмотрел, но не совсем понял, как им пользоваться в моей ситуации. Судя по всему, там bytesAvalible после окончания загрузки тоже берётся из заголовка.
Корректно всё, кроме длины в заголовке.
не могу понять, о каком заголовке идет речь?
всегда просто слал из пхп xml , и никогда не указывал его размер, приходил всегда необрезанным, любого размера, на сервере нет возможности в JSON данные выдавать? В вашем случае не флеш режет ответ на запрос, а сервер.
gloomyBrain
27.02.2014, 13:02
Посмотрел, но не совсем понял, как им пользоваться в моей ситуации. Судя по всему, там bytesAvalible после окончания загрузки тоже берётся из заголовка.
В таком случае остается только выяснить почему сервер отдает заголовок, который не соответствует истине
RigidFlasher
27.02.2014, 13:17
В таком случае остается только выяснить почему сервер отдает заголовок, который не соответствует истине
Ясно, спасибо.
Добавлено через 1 минуту
не могу понять, о каком заголовке идет речь?
Речь идёт о Content-Length из заголовка.
мальнько не могу понять проблемы, сервер , к которому нет доступа, и который неправильно выдает данные... Если это не ваш сервер, то как с ним другие люди работают вообще, если он xml неправильно выдает. Или все таки доступ есть, но вы не знаете как исправить?
RigidFlasher
28.02.2014, 07:13
мальнько не могу понять проблемы, сервер , к которому нет доступа, и который неправильно выдает данные... Если это не ваш сервер, то как с ним другие люди работают вообще, если он xml неправильно выдает. Или все таки доступ есть, но вы не знаете как исправить?
Сервер наш, но лично у меня доступа к нему нет. У нас система на AS2, и в ней почему-то всё работает. Я перевожу систему на AS3, и столкнулся вот с такой проблемой.
а у вас точно запрос, которые переписали на as3 идентичен запросу на as2? если да, то надо смотреть что вы еще поменяли (версия php на сервере и т.п.), и нюансы работы всех изменений, мне кажется что в любом случае придется в сервер лезть, может просто в as2 загрузчик не смотрит на размер xml, грузит его полностью, а в as3 - смотрит и обрывает загрузку (это только предположения).
RigidFlasher
28.02.2014, 11:54
а у вас точно запрос, которые переписали на as3 идентичен запросу на as2? если да, то надо смотреть что вы еще поменяли (версия php на сервере и т.п.), и нюансы работы всех изменений, мне кажется что в любом случае придется в сервер лезть, может просто в as2 загрузчик не смотрит на размер xml, грузит его полностью, а в as3 - смотрит и обрывает загрузку (это только предположения).
да, запрос полностью идентичен, многократно проверял в сниффере. видимо, придётся ставить задачу на серверного программиста. а хотелось по-быстрому решить эту проблему.
хотелось по-быстрому решить эту проблему.
не думаю что там много делов
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.