Я обнаружил, что модуль запроса в js не может корректно обрабатывать gzip или раздувать 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;
}
});
Проблема в том, что код записывает веб-страницу в файл, я надеюсь, что он может написать страницу в строку, чтобы я мог обрабатывать страницу. Я не мог найти такой класс, как "StringStream".
Если у кого-нибудь есть идеи по этому поводу, это будет здорово.