Comment utiliser requête http ou le module pour lire gzip page dans une chaîne

J'ai trouvé le module de demande en js ne peut pas gérer gzip ou gonfler le format de la réponse http correctement.

par exemple:

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.
}

si je veux utiliser l'exemple de code dans officiel docs.

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;
  }
});

Le problème est que le code est écrit à la page web dans un fichier, j'espère que cela peut écrire la page dans une chaîne, afin que je puisse traiter la page. Je ne pouvais pas trouver toutes les classe comme "StringStream'.

Si quelqu'un a une idée sur ce,ça va être super.

Si createUnzip peut gérer à la fois gzip et à gonfler, pourquoi s'embêter à écrire le code supplémentaire? Est-il plus lent?

OriginalL'auteur user966085 | 2012-04-18