我正在尝试使用nodejs创建一个简单的http代理,我想读取响应正文。
我创建了代理,并且可以正常工作,但是我面临的问题是,当我尝试控制台日志响应正文时,它仅显示“��@�^j.J��tu7��X�� ZgG���cb��ܩ“,我尝试了在node-http-proxy文档中给出的示例,该示例虽然有效,但显示的输出与文本相同。
这是我正在使用的代码:
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'),您可以对其进行解码并将其读取为纯文本。