适用于节点构建器的 HTTP 请求助手#
n8n 提供了一个灵活的 HTTP 请求助手,它抽象了大部分复杂性。
仅适用于编程式风格
本文档中的信息适用于使用编程式风格构建节点的情况。不适用于声明式风格的节点。
使用方法#
在 execute 函数内部调用该辅助方法。
1 2 3 4 5 6 7 8 9 | |
options 是一个对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
url 是必填项。其他字段都是可选的。默认方法是 GET。
关于各字段的注意事项:
body: 可以使用常规 JavaScript 对象作为 JSON 载荷,使用 buffer 上传文件,使用 FormData 实例处理multipart/form-data,使用URLSearchParams处理application/x-www-form-urlencoded。headers: 键值对形式。- 如果
body是FormData实例,n8n 会自动添加content-type: multipart/form-data。 - 如果
body是URLSearchParams实例,n8n 会自动添加content-type: application/x-www-form-urlencoded。 - 要覆盖此行为,可以手动设置
content-type头。
- 如果
arrayFormat: 如果查询字符串包含数组数据(如const qs = {IDs: [15,17]}),该值定义 n8n 如何格式化数组。indices(默认):{ a: ['b', 'c'] }格式化为a[0]=b&a[1]=cbrackets:{ a: ['b', 'c'] }格式化为a[]=b&a[]=crepeat:{ a: ['b', 'c'] }格式化为a=b&a=ccomma:{ a: ['b', 'c'] }格式化为a=b,c
auth: 用于 Basic 认证。提供username和password。n8n 建议省略此项,改用helpers.httpRequestWithAuthentication(...)。disableFollowRedirect: 默认情况下 n8n 会跟随重定向。设为 true 可禁用此行为。skipSslCertificateValidation: 用于调用没有正确证书的 HTTPS 服务returnFullResponse: 不仅返回响应体,还会返回包含更多数据的对象,格式为:{body: body, headers: object, statusCode: 200, statusMessage: 'OK'}encoding: n8n 可以自动检测内容类型,但你可以指定arrayBuffer来获取可读取和交互的 Buffer。
示例#
如需查看示例,请参考 Mattermost 节点。
旧版 helper 的弃用#
之前使用 this.helpers.request(options) 的 helper 实现依赖并暴露了 request-promise 库。该实现在版本 1 中已被移除。
为最大限度减少兼容性问题,n8n 已将其透明地转换为了另一个名为 Axios 的库。
新版 helper 迁移指南#
新版 helper 更加健壮、不依赖特定库且更易使用。
所有新节点都应使用新版 helper。强烈建议将现有自定义节点迁移至新版 helper。以下是迁移时的主要注意事项:
- 接受
url参数,不再接受uri参数 encoding: null现在必须改为encoding: arrayBufferrejectUnauthorized: false现在应改为skipSslCertificateValidation: true- 根据
content-type头正确使用body来明确负载内容 resolveWithFullResponse现已改为returnFullResponse,功能类似