HTTP 请求-设置请求头
设置 HTTP 请求头信息
问题背景
需要发送带有特定请求头的 HTTP 请求。
解决方案
将 msg.headers 字段设置为您希望包含在发送到 HTTP 请求 节点的消息中的请求头的字段/值对。
示例
在此示例中,我们设置 X-Auth-User 和 X-Auth-Key 请求头,以调用公共的 HttpBin post 测试服务。
该流程包含四个节点:
- 注入 节点: 配置为每当触发时,发送一个空消息,以启动流程。
- 函数 节点 (set payload and headers): 此节点是关键,它创建
msg.headers对象,并设置请求头字段/值。msg.payload = "data to post";
msg.headers = {};
msg.headers['X-Auth-User'] = 'mike';
msg.headers['X-Auth-Key'] = 'fred-key';
return msg; - HTTP 请求 节点 (post to HttpBin): 发送
POST请求到https://httpbin.org/post。它会自动使用msg.headers中设置的请求头。 - 日志输出 节点: 显示 HTTP Request 节点返回的
msg.payload内容。

示例JSON
[{"id":"cb1dfcde.fd153","type":"function","z":"db204302463e78d0","name":"set payload and headers","func":"msg.payload = \"data to post\";\nmsg.headers = {};\nmsg.headers['X-Auth-User'] = 'mike';\nmsg.headers['X-Auth-Key'] = 'fred-key';\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":620,"wires":[["e44209e7.752698"]]},{"id":"dcf34aab.218928","type":"inject","z":"db204302463e78d0","name":"","repeat":"","crontab":"","once":false,"topic":"","payload":"","payloadType":"date","x":180,"y":620,"wires":[["cb1dfcde.fd153"]]},{"id":"e44209e7.752698","type":"http request","z":"db204302463e78d0","name":"post to HttpBin","method":"POST","ret":"obj","paytoqs":"ignore","url":"https://httpbin.org/post","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":580,"y":620,"wires":[["ee306582.f0dde8"]]},{"id":"ee306582.f0dde8","type":"debug","z":"db204302463e78d0","active":true,"console":"false","complete":"false","x":750,"y":620,"wires":[]}]
运行结果
部署此流程并触发 注入 节点时,HTTP 请求 节点将向 HttpBin 服务发送 POST 请求。由于 HttpBin 服务会将请求回显,您可以在调试面板中展开输出消息,并在 msg.payload.headers 部分看到设置的请求头:
{
"args": { },
"data": "data to post",
"files": { },
"form": { },
"headers": {
"Content-Length": "12",
"Host": "httpbin.org",
"User-Agent": "got (https://github.com/sindresorhus/got)",
"X-Amzn-Trace-Id": "Root=1-68c22a8e-697769f15f71b88f4f5c2e99",
"X-Auth-Key": "fred-key",
"X-Auth-User": "mike"
},
"json": null,
"origin": "183.14.31.248",
"url": "https://httpbin.org/post"
}
下面的 函数 节点中的代码通过添加 msg.headers 对象并在此对象中设置请求头字段/值来添加这些额外的消息字段。
msg.payload = "data to post";
msg.headers = {};
msg.headers['X-Auth-User'] = 'mike';
msg.headers['X-Auth-Key'] = 'fred-key';
return msg;
