Javascript 如何从NodeJs http代理读取响应正文

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

我正在尝试使用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”),您可以将其解码并作为纯文本读取

这是一个有用的问题,为我节省了一些时间——我想知道为什么响应体看起来像这样!