我已经阅读了这篇文章并意识到我想做的事情很糟糕,但是我有一个客户端正在发布数据而没有添加 Content-Length 或 Transfer-Encoding。我可以模仿 curl 的请求:
curl -H "Accept:" -H "Content-Type:" -H "Expect:" -H "Content-Length:" -d 'hello=world' http://localhost:1337/post
并添加 Transfer-Encoding 标头
curl -H "Accept:" -H "Content-Type:" -H "Expect:" -H "Content-Length:" -H "Transfer-Encoding: chunked" -d 'hello=world' http://localhost:1337/post
产生预期的 POST 数据。
我正在使用带有以下代码的节点运行服务器:
var http = require('http');
var server = http.createServer(function (req, res) {
req.on('data', function (chunk) {
console.log('chunk', chunk.toString());
});
req.on('end', function () {
res.end();
});
}).listen(1337, '127.0.0.1');
是否有一个地方可以拦截请求并添加标头以便我可以访问数据,或者是否有另一种方法/事件可以用来获取 POST 数据?
谢谢, 肖恩持有人