我有一个节点代理服务器,我在其中传递来自另一台服务器的响应。它正在返回xml。结果XML使它成为浏览器但是当试图拦截proxyResponse.on事件中的响应时,我似乎无法解析数据。尝试使用chunk.toString()会导致文本无法读取。
// Handle proxy response data
proxyResponse.on (
'data',
function ( chunk ){
if ( debugging ){
console.log ( ' < chunk = %d bytes', chunk.length );
}
xml += chunk.toString();
response.write ( chunk, 'utf8');
console.log('Response: '+ xml);
}
);
答案 0 :(得分:0)
http标头是导致我的解决方案的线索。这个块被Gzip压缩,所以我使用Zlib库解压缩块以获取内部的xml。
var zlib = require('zlib');
// Handle proxy response data
proxyResponse.on (
'data',
function ( chunk ){
if ( debugging ){
console.log ( ' < chunk = %d bytes', chunk.length );
}
xml += chunk;
response.write ( chunk );
zlib.unzip(chunk, function(err, chunk){
if (!err){
console.log('Response'+chunk.toString())
}
});
});