Node.js 如何在nodejs中修改请求头

Node.js 如何在nodejs中修改请求头,node.js,http,Node.js,Http,我读过这篇文章,意识到我想做的不好,但我有一个客户端,它在发布数据时没有添加内容长度或传输编码。我可以通过以下方式模拟curl中的请求: curl-H“接受:”-H“内容类型:”-H“期望:”-H“内容长度:”-d'hello=world'http://localhost:1337/post 以及添加传输编码头 curl-H“接受:”-H“内容类型:”-H“期望:”-H“内容长度:”-H“传输编码:分块”-d'hello=world'http://localhost:1337/post

我读过这篇文章,意识到我想做的不好,但我有一个客户端,它在发布数据时没有添加内容长度或传输编码。我可以通过以下方式模拟curl中的请求:


curl-H“接受:”-H“内容类型:”-H“期望:”-H“内容长度:”-d'hello=world'http://localhost:1337/post

以及添加传输编码头


curl-H“接受:”-H“内容类型:”-H“期望:”-H“内容长度:”-H“传输编码:分块”-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数据

谢谢,
Shane Holder

我不是100%清楚你想做什么,但我想我可以在这里为你指出一些有用的方向:

是否有一个地方可以截取请求并添加标题以便访问数据,或者是否有其他方法/事件可用于获取POST数据

所以首先要知道的是HTTP模块都可以作为源代码使用。而且似乎大部分都是这样。所以如果你不介意复制粘贴的话,你可以稍微修改一下

另一个有用的小贴士是HTTP模块只是处理HTTP的套接字的充实实现。如果您真的想,您可以降低套接字级别并处理所有传入的字节。这应该可以让你用它做任何你想做的事情。同样,您可能想看看这方面的一些原始代码


或者,您可以不顾危险修改标题,并在代码中添加一个大的红旗注释,警告可能出现的问题。

您想将请求重定向到另一个带有附加/修改标题的url,对吗?我只想使用请求体,但如果我需要重定向,我可以这样做。看起来我想要的并不是一个真正的选项。我刚刚实现了一个原始套接字处理程序,它具有足够的HTTP功能来处理有限的用例。这不是一个理想的解决方案,但可以满足短期需求。