Распаковка Python zlib gzip не удалась, поскольку строка сжата на стороне клиента через pakoPython

Программы на Python
Ответить
Anonymous
 Распаковка Python zlib gzip не удалась, поскольку строка сжата на стороне клиента через pako

Сообщение Anonymous »

Я хочу распаковать объект JSON на стороне сервера (с помощью Python zlib), который я заархивировал в браузере с помощью JS-библиотеки pako. Сжатая строка отправляется на сервер через XHR.
К сожалению, серверное приложение Python завершается с ошибкой

Ошибка -3 при распаковке: неверный заголовок проверьте

Код, который я использую для сжатия на стороне клиента:

Код: Выделить всё

var json = JSON.stringify(data);
var zlibOpts = {
level: 9,
to: 'string'
};
data = pako.gzip(json, zlibOpts);
Код на стороне сервера:

Код: Выделить всё

zlib_window_size = 31
result = zlib.decompressobj().decompress(data, zlib_window_size)
Я понял, что windowBits важен для zlib, чтобы распознать строку как сжатую gzip (как указано в этой теме и документации zlib), поэтому я использовал тот же самый который paco использует для сжатия ().
Я также пробовал без оконных битов и с zlib.MAX_WBITS|16 или zlib.MAX_WBITS|32 в Python , который завершается с той же ошибкой.
Серверное приложение работает на Tornado.
Любая помощь/подсказка приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/401 ... side-via-p
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»