如何将打开gzip文件的结果转换为字符串

时间:2017-07-27 08:27:46

标签: node.js request gzip

 var request = require('request')
  request(
    { method: 'GET'
    , uri: 'http://www.examplewebsite.com'
    , gzip: true
    }
  , function (error, response, body) {
      console.log(body); //I am trying print body here
      console.log(response.body); // //I am trying print body here too
    }
  )

我收到的只是�V*.I,)-V�*)*M�QJI,IT��V��,.���%�E��)JV�����d��$1 如果我尝试使用JSON.stringify(body),结果是:

\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0000\u0003�V*.I,)-V�*)*M�QJI,IT��V��,.\u0001��\u0019�\u0005%�E��)JV�����\u0000d��$1\u0000\u0000\u0000

我想要的只是看到普通的字符串。我该怎么做?

1 个答案:

答案 0 :(得分:1)

我希望设置gzip : true会自动解压缩响应主体,但服务器可能没有设置正确的Content-Encoding标头。

在这种情况下,你可以试试这个:

const zlib    = require('zlib');
const request = require('request');

request({
  method   : 'GET',
  uri      : 'http://www.examplewebsite.com',
  gzip     : true,
  encoding : null,
}, function (error, response, body) {
  let decompressed = zlib.gunzipSync(body).toString();
  ...
})