var url = "https://www.parsehub.com/api/v2/projects/{PROJECT_TOKEN}/last_ready_run/data";
var api_key = 'te79WidrkOmN_Fxs2e_kNnX5';
url = url.replace('{PROJECT_TOKEN}', 'tbNBvhG208xhGUpecAk62V80');
console.log('start fetching remote results from ' + url);
this.unblock();
HTTP.get(url, {params: {api_key: api_key}}, function(error, result) {
if(error) {
console.log('http get FAILED!');
} else {
console.log('http get SUCCESS');
if (result.statusCode === 200) {
console.log('Status code = 200!');
console.log(result.content);
}
}
});

这里的result.content是gzip,如何解压缩?我试过gb96:zlib但是无法使它工作。使用HTTP.get自动解压缩gzipped响应时是否还有隐藏标志?
我也在http://meteorpad.com/pad/8LnKNnzusSNhzbQ5s/Leaderboard
将这个问题放在meteorpad上要重现,只需选择一个播放器并点击"添加5个点"。
任何帮助将不胜感激。
谢谢,
答案 0 :(得分:4)
对不起,我知道这是一个非常晚的回复,问题已经永远开放,但我有一个解决方案。
在Http.get
选项中,您可以将npmRequestOptions
作为对象传递。在此对象中使用gzip : true
,您的响应应该为您解压缩。
像这样......
HTTP.get("http://something", {
"npmRequestOptions" : {"gzip" : true}
},
function(err, res) {
//response is decompressed!
});
答案 1 :(得分:1)
Run Command:
npm install unzip
fs.createReadStream('path/to/archive.zip').pipe(unzip.Extract({ path: 'output/path' }));
或者将unzip.Parse()的输出传递给fstream
var readStream = fs.createReadStream('path/to/archive.zip');
var writeStream = fstream.Writer('output/path');
readStream
.pipe(unzip.Parse())
.pipe(writeStream)