如何从NodeJ的HTTP代理读取响应正文

时间:2019-07-08 00:43:32

标签: 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.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'),您可以对其进行解码并将其读取为纯文本。

0 个答案:

没有答案