我试图找出一种方法让这个库与 gzip 和 deflate 一起工作。
看了这个问题,尝试了建议,但由于某种原因它仍然不起作用。我对 node.js 比较陌生,有人可以看看我的代码并告诉我我做错了什么吗?
var request = require("request"),
zlib = require( 'zlib' );
var req = request( {
uri: "http://google.com",
headers: {
'Accept-Encoding': 'gzip, deflate',
'user-agent': 'Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1',
},
},
function( error, res, body ) {
var output;
switch ( res.headers[ 'content-encoding' ] ) {
case 'gzip':
var gzip = zlib.createGunzip();
res.pipe(gzip);
output = gzip;
break;
case 'deflate':
var gzip = zlib.createInflate();
res.pipe(gzip);
output = gzip;
break;
default:
res.setEncoding( 'utf8' );
output = res;
break;
}
//console.log( body ) // outputs encoded html
output.on('data', function ( data ) {
console.log( data ); // never happens
});
output.on('end', function() {
console.log( data ); // never happens
});
});