sac*_*024 5 compression gzip http-headers node.js
我正在使用http node.js 模块来发出http请求.我想强制Web服务器返回未压缩的数据.[没有gzip,没有放气].
请求标头
headers: {
'Accept-Encoding': 'gzip,deflate,sdch',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.57 Chrome/31.0.1650.57 Safari/537.36',
}
Run Code Online (Sandbox Code Playgroud)
我试过用这个'Accept-Encoding': '*;q=1,gzip=0'
但没有运气.
我看到两种方法:
我想去#1.
小智 3
如果您向无法控制的外部服务器发出 http 请求,并且它不会对Accept-Encoding
请求标头做出反应,那么您必须处理压缩的响应并稍后将其解压缩。我建议您使用zlib模块。这是一个例子:
var zlib = require('zlib');
//...
request.on('response', function(response){
var contentEncoding = response.headers['content-encoding'];
response.on('data', function(data){
switch(contentEncoding){
case 'gzip':
zlib.gunzip(data, function(error, body){
if(error){
//Handle error
} else {
//Handle decompressed response body
}
});
break;
case 'deflate':
zlib.inflate(data, function(error, body){
if(error){
//Handle error
} else {
//Handle decompressed response body
}
});
break;
default:
//Handle response body
break;
}
});
});
Run Code Online (Sandbox Code Playgroud)