节点构建者的 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 负载,使用缓冲区进行文件上传,使用 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]},arrayFormat的值定义 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:用于基本身份验证。提供username和password。n8n 建议省略此项,而使用helpers.httpRequestWithAuthentication(...)代替。disableFollowRedirect:默认情况下,n8n 遵循重定向。您可以将此设置为 true 以防止这种情况发生。skipSslCertificateValidation:用于调用没有适当证书的 HTTPS 服务returnFullResponse:不仅返回正文,而是返回包含更多数据的对象,格式如下:{body: body, headers: object, statusCode: 200, statusMessage: 'OK'}encoding:n8n 可以检测内容类型,但您可以指定arrayBuffer以接收您可以读取和交互的缓冲区。
示例#
有关示例,请参考 Mattermost 节点。
弃用之前的助手#
使用 this.helpers.request(options) 的之前助手实现使用并暴露了 request-promise 库。这在版本 1 中被移除。
为了最小化不兼容性,n8n 对另一个名为 Axios 的库进行了透明转换。
迁移到新助手的指南#
新助手更加健壮、库无关且更易于使用。
新节点都应该使用新助手。您应该强烈考虑将现有的自定义节点迁移到新助手。迁移时的主要考虑事项:
- 接受
url。不接受uri。 encoding: null现在必须是encoding: arrayBuffer。rejectUnauthorized: false现在是skipSslCertificateValidation: true- 根据
content-type标头使用body来澄清负载。 resolveWithFullResponse现在是returnFullResponse并具有类似的行为