Уменьшаем трафик: читаем HTTP ответ, сжатый GZip, используя ХранилищеЗначения 1С (без ЧтениеZipФайла)
Обработка демонстрирует распаковку gzip-сжатого ответа HTTP сервера средствами платформы 1С (без внешней компоненты, без COMОбъекта). Для этого используется объект ХранилищеЗначения, а не ЧтениеZipФайла.
- Описание
- Подробнее
Описание
В сети есть примеры, как средствами 1С распаковывать ответ HTTP сервера, закодированный gzip. Однако метод без использования ЧтениеZipФайла я не встречал. Методы в сети из gzip-кодированного тела HTTP-ответа формируют zip-файл с последующей его распаковкой. Мой метод формирует ХранилищеЗначения с последующим получением данных из него. Преимуществом распаковки через Хранилище является то, что не нужно записывать временные файлы. При этом код 1C функции распаковки в несколько раз короче, чем при использовании ЧтениеZipФайла.
Для демонстрации обработка получает курсы валют с сайта Центробанка. Чтобы ответ сервера Центробанка был сжат в gzip, в HTTPЗапросе устанавливается заголовок "accept-encoding: gzip". На скринах видно, что установка такого заголовка порой дает существенную экономию трафика, в данном случае получилось сжатых 1406 байтов вместо несжатых 11212.
Разрабатывалась на платформе 8.3.25, должна работать начиная с 8.3.9.
