【问题标题】:How to get request's body using http-proxy?如何使用 http-proxy 获取请求的正文?
【发布时间】:2016-10-24 13:06:29
【问题描述】:

我想编写一个简单的代理,它将特定 POST 请求的正文保存到文件中。

我试过http-proxy 但问题是我不知道如何获取请求的正文。有标题和一些其他信息,但req 对象中没有正文。这是我目前所拥有的。我检查了我创建的日志文件,但没有看到请求正文。

var fs = require('fs'),
    http = require('http'),
    httpProxy = require('http-proxy');

var proxy = httpProxy.createProxyServer({});

var logger = function () {

    return function (request, response) {
        var logFile = fs.createWriteStream('./req' + new Date().getTime() + '.log');
        proxy.web(request, response, {target: 'http://localhost:8081'});

        var cache = [];
        logFile.write(
            JSON.stringify(request, function (key, value) {
                if (typeof value === 'object' && value !== null) {
                    if (cache.indexOf(value) !== -1) {
                        // Circular reference found, discard key
                        return;
                    }
                    // Store value in our collection
                    cache.push(value);
                }
                return value;
            }, 2)
        );
    }
};

var server = http.createServer(logger());
server.listen(8080);

【问题讨论】:

    标签: javascript node.js http node-http-proxy


    【解决方案1】:

    通常当我想通过节点访问请求正文时,我使用 body-parser 模块。

    How to use it !

    【讨论】:

    • 谢谢。适用于 json,但我有 xml 正文,看起来 bodyparser 无法读取它,即使我设置为raw。有什么建议吗?
    • 这应该可以完成工作:body-parser-xml
    • 很遗憾body-parser 修改了原始请求,至少从中删除了正文:\
    猜你喜欢
    • 2015-07-10
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2012-02-25
    • 2014-06-14
    • 2018-05-10
    • 2011-05-27
    相关资源
    最近更新 更多