Encontré que el módulo de solicitud en js no puede manejar gzip o inflar la respuesta http de formato correctamente.Cómo usar la solicitud o el módulo http para leer la página de gzip en una cadena
por ejemplo:
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.
}
así que desea utilizar el código de ejemplo en documentos oficiales.
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;
}
});
El problema es que el código está escribiendo la página web en un archivo, espero que pueda escribir la página en una cadena, de modo que pueda procesar la página. No pude encontrar ninguna clase como 'StringStream'.
Si alguien tiene alguna idea al respecto, será genial.
Si createUnzip puede manejar tanto gzip e inflar, ¿por qué molestarse en escribir el código extra? ¿Es más lento? – CMCDragonkai