Node.js 代理请求正文
我在使用 node.js
和 node-http-proxy
获取双重代理请求的 response 正文时遇到一个简单的问题。
我基本上想做的就是在 Chrome 中将我的服务器的 IP 和端口设置为代理(可以工作),然后将请求代理到其他服务器。
我是这样做的:
var ip = {'xx.xx.xx.xx', 8080};
var proxy = new httpProxy.HttpProxy({
target: {
port : ip[0], host : ip[1]
}
});
var server = http.createServer(function(req, res) {
proxy.proxyRequest(req, res);
proxy.on('data', function() { console.log(data);});
}).listen(8001)
不幸的是,没有一个“数据”事件对我有用......“结束”事件对我有用,但我从未设法获得尸体。有谁知道如何实现这一目标?我需要将每个请求的正文保存到特定文件中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的……这超出了我的想象。请注意,我代理到端口 80,因为大多数网站都在端口 80 上提供服务。根据您的特定用例更改代码。这是在 CoffeeScript 中。
日志请求标头:
JS Translation
将“localhost”和端口 8080 作为您的浏览器代理。这对你有用吗?
记录请求正文:
我对此进行了测试,可以确认它记录了 POST/PUT 的正文。
记录响应正文:
可能不是最干净的方式,但我可以确认它有效。
Yes... this is off the top of my head. Note, that I'm proxying to port 80 since most websites serve on port 80. Change the code for your specific use case. This is in CoffeeScript.
Log Request Headers:
JS Translation
Put 'localhost' and port 8080 for your browser proxy. Does this work for you?
Log Request Body:
I tested this and can confirm that it logs the body of a POST/PUT.
Log Response Body:
Might not be the cleanest way, but I can confirm that it works.