nodejs + http.request响应乱码?可能是gzip的原因

51 阅读1分钟

前提

开发代理服务器时,使用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);
})