|
|
|||||
Поддержка 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? Или тут еще какая магия?
__________________
Кодинг, багинг, алгоритминг. me @ |
|
|||||
Да, кстати, дополнение. Это один хрен не работает из Flash IDE. Хэдэр то оно шлёт, а принимает кракозябры.
Чтобы конкретно отображались проценты - эйру нужно слать от сервера свой хэдэр о длине респонза. Простой Content-Length Air воспринимает так как ему нужно, а не так, как требуется. Перебор HTTPStatusEvent().responseHeaders спасает ситуацию при наличии правильного заголовка о длине входящих данных.
__________________
Кодинг, багинг, алгоритминг. me @ |
Часовой пояс GMT +4, время: 20:48. |
|
« Предыдущая тема | Следующая тема » |
Теги |
air , gzip , urlloader , urlrequest |
|
|