Node.js Gzip充气-节点压缩
我正试图从中提取一个gzip json文件 我已经安装了,如果我向Stack Overflow API发出请求,所有这些都可以正常工作,但是一旦我尝试请求discogs,就会出现错误Node.js Gzip充气-节点压缩,node.js,gzip,Node.js,Gzip,我正试图从中提取一个gzip json文件 我已经安装了,如果我向Stack Overflow API发出请求,所有这些都可以正常工作,但是一旦我尝试请求discogs,就会出现错误 Assertion failed: (ret != Z_STREAM_ERROR), function GunzipInflate, file ../compress.cc, line 271. Abort trap: 6 代码: 有什么想法吗 更新: 似乎他们没有把它寄出去。这是我最终使用的 var o
Assertion failed: (ret != Z_STREAM_ERROR), function GunzipInflate, file ../compress.cc, line 271.
Abort trap: 6
代码:
有什么想法吗
更新:
似乎他们没有把它寄出去。这是我最终使用的
var options = {
host: 'api.discogs.com',
port: 80,
path: '/release/339901',
headers: {
"Accept-Encoding": "gzip"
}
};
http.get(options, function(getRes){
var body = "";
getRes.on('data', function(chunk){
body = body + chunk;
});
getRes.on('end', function(err, data){
res.end(body);
});
});
似乎api.discogs.com没有返回gzip编码的响应 您应该首先检查内容编码标题:
if (res.headers['content-encoding'] === 'gzip') { ... }
请求gzip编码的响应(“接受编码”:“gzip”)并不能保证这一点
您可以通过以下方式进行验证:
console.log(JSON.stringify(res.headers));
res.on('data', function(chunk){
console.log(chunk.toString());
});
似乎api.discogs.com没有返回gzip编码的响应 您应该首先检查内容编码标题:
if (res.headers['content-encoding'] === 'gzip') { ... }
请求gzip编码的响应(“接受编码”:“gzip”)并不能保证这一点
您可以通过以下方式进行验证:
console.log(JSON.stringify(res.headers));
res.on('data', function(chunk){
console.log(chunk.toString());
});
是的,看起来这就是问题所在。奇怪的是,如果您使用“Accept Encoding”:“gzip”进行请求,他们只会发送响应,但不会发送gzip。我已经更新了我最终使用的内容。谢谢。是的,看起来这就是问题所在。奇怪的是,如果您使用“Accept Encoding”:“gzip”进行请求,他们只会发送响应,但不会发送gzip。我已经更新了我最终使用的内容。谢谢