前提
开发代理服务器时,使用http.request请求目标服务器,解析响应body时,发现是乱码。最后根据响应头信息,确认是body经过了gzip压缩。
解压缩gzip
let output;
if (response.headers['content-encoding'] === 'gzip') {
const gzip = zlib.createGunzip();
response.pipe(gzip);
output = gzip;
}
let result = '';
output.on('data', (data) => {
data = data.toString('utf-8');
result += data;
});
output.on('end', () => {
console.log('result:', result);
})