Javascript 如何从NodeJs http代理读取响应正文
我正在尝试使用nodejs创建一个简单的http代理,我想阅读响应正文 我创建了代理,它可以工作,但我面临的问题是,每当我尝试控制台记录响应主体时,它只会显示“��@�^J�J��tu7��X��ZgG���cb��ܩ”,我尝试了node http proxy文档中给出的示例,它可以工作,但它显示了与文本不同的输出 这是我正在使用的代码:Javascript 如何从NodeJs http代理读取响应正文,javascript,node.js,proxy,Javascript,Node.js,Proxy,我正在尝试使用nodejs创建一个简单的http代理,我想阅读响应正文 我创建了代理,它可以工作,但我面临的问题是,每当我尝试控制台记录响应主体时,它只会显示“��@�^J�J��tu7��X��ZgG���cb��ܩ”,我尝试了node http proxy文档中给出的示例,它可以工作,但它显示了与文本不同的输出 这是我正在使用的代码: var server = http.createServer(function (req, res) { var urlObj = url.pars
var server = http.createServer(function (req, res) {
var urlObj = url.parse(req.url);
var target = urlObj.protocol + "//" + urlObj.host;
var proxy = httpProxy.createProxyServer({});
res.oldWrite = res.write;
res.write = function(data) {
//this doesn't output text
console.log(data.toString('UTF8'));
res.oldWrite(data);
}
proxy.web(req, res, {target: target});
}).listen(8080);
编辑:
如果任何一个都有相同的问题,那就是请求是用GZIP编码的(您会发现一个标题“Content encoding”),您可以将其解码并作为纯文本读取 这是一个有用的问题,为我节省了一些时间——我想知道为什么响应体看起来像这样!