Python zlib gzip解压缩失败,在客户端通过pako压缩字符串

时间:2016-10-20 14:35:00

标签: javascript python compression gzip zlib

我想解压缩服务器上的JSON对象(使用Python的zlib),我在浏览器中使用JS库pako对其进行了解压缩。压缩的字符串通过XHR发送到服务器。 不幸的是,服务器端Python应用程序失败了

  

解压缩时出错-3:错误的标题检查

我用于客户端压缩的代码:

/Users/tim/.profile

服务器端代码:

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) 对于zlib将字符串识别为gzip压缩(如in this threadzlib docs所述)非常重要所以我使用的是paco使用的相同内容压缩(windowBits)。

我在Python中没有任何31windowBitszlib.MAX_WBITS|16的情况下尝试过,但是失败并出现同样的错误。

服务器端应用程序正在Tornado上运行。

非常感谢任何帮助/提示!

1 个答案:

答案 0 :(得分:1)

zlib_window_sizedecompress()移至decompressobj()。或者只是摆脱decompressobj()。只需拨打一次decompress(),就不需要它。