Поддержка GZip в AIR
Товарисчи. Столкнулся с такой интересной особенностью.
При обращении к серверу через обычный URLLoader и URLRequest приходят противоречивые данные о bytesTotal при работе из Flash IDE и при скомпилленном в *air-файл проекте. Сервер настроен следующим образом. Если приходит хэдэр того, что GZip не поддерживается - сервер отдает данные в обычном строковом формате. Иначе - отсылает Gzip-данные. Так вот, при работе из IDE - проект принимает данные в обычном формате. Отношение bytesloaded/bytestotal *100 - выводит верные проценты. При публикации и запуске непосредственно EXE или AIR-файла - bytesLoaded в несколько раз превышает bytesTotal, из-за чего имеем 400% принятых данных. Следовательно сервер отдает неверный content-length. Отдача сервером данных решаема. Фишка в том, что данные действительно приходят и скорость их получение существенно возрастает. Вопрос в следующем: действительно ли AIR понимает GZip только в опубликованном проекте или его каким-то образом можно настроить и в дебаговой сессии во Flash IDE? Или тут еще какая магия? |
Always send the header 'Accept-Encoding':'gzip' if running a Desktop (Aka AIR) app.
|
Благодарствую.
|
Да, кстати, дополнение. Это один хрен не работает из Flash IDE. Хэдэр то оно шлёт, а принимает кракозябры.
Чтобы конкретно отображались проценты - эйру нужно слать от сервера свой хэдэр о длине респонза. Простой Content-Length Air воспринимает так как ему нужно, а не так, как требуется. Перебор HTTPStatusEvent().responseHeaders спасает ситуацию при наличии правильного заголовка о длине входящих данных. |
Часовой пояс GMT +4, время: 20:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.