Как использовать модуль запроса или http для считывания страницы gzip в строку

Я обнаружил, что модуль запроса в js не может обрабатывать gzip или формат inflate http

например:

request({url:'some url'}, function (error, response, body) {
   //if the content-encoding is gzip, the body param here contains binaries other than readable string. And even worse after you convert the body to buffer, u even can not gunzip it.
}

поэтому я хочу использовать образец кода в официальных документах.

var request = http.get({ host: 'izs.me',
                         path: '/',
                         port: 80,
                         headers: { 'accept-encoding': 'gzip,deflate' } });
request.on('response', function(response) {
  var output = fs.createWriteStream('izs.me_index.html');

  switch (response.headers['content-encoding']) {
    // or, just use zlib.createUnzip() to handle both cases
    case 'gzip':
      response.pipe(zlib.createGunzip()).pipe(output);
      break;
    case 'deflate':
      response.pipe(zlib.createInflate()).pipe(output);
      break;
    default:
      response.pipe(output);
      break;
  }
});

Проблема в том, что код записывает веб-страницу в файл, я надеюсь, что он может записать страницу в string, чтобы я мог обработать страницу. Я не смог найти ни одного класса, подобного 'StringStream'.

Если у кого-то есть идеи по этому поводу, будет здорово.

13
задан Prerna Jain 31 August 2016 в 11:48
поделиться