N8N中文教程
集成节点/Built in_nodes/Core_nodes/Webhook

常见问题与解答#

以下是关于 Webhook 节点 的常见问题与建议解决方案。

监听多个 HTTP 方法#

默认情况下,Webhook 节点仅支持单一 HTTP 方法的调用。例如,它可以接受 GET 或 POST 请求,但不能同时接受两者。如需支持多方法调用:

  1. 打开节点设置
  2. 启用允许使用多个 HTTP 方法
  3. 返回参数设置,节点默认会接受 GET 和 POST 调用,您可以在 HTTP 方法字段中添加其他方法

Webhook 节点会为每个 HTTP 方法提供独立输出,因此您可以根据不同方法执行不同操作。

使用 HTTP 请求节点触发 Webhook 节点#

HTTP 请求 节点可向指定 URL 发起 HTTP 请求:

  1. 创建新工作流
  2. 添加 HTTP 请求节点至工作流
  3. 请求方法下拉列表选择方法(例如 Webhook 节点中设置为 GET,此处同样选择 GET)
  4. 复制 Webhook 节点中的 URL,粘贴至 HTTP 请求节点的 URL 字段
  5. 若使用 Webhook 节点的测试 URL:需先执行包含 Webhook 节点的工作流
  6. 执行 HTTP 请求节点

使用 curl 触发 Webhook 节点#

您可以使用 curl 发起 HTTP 请求来触发 Webhook 节点。

注意 示例中的 <https://your-n8n.url/webhook/path> 需替换为您的实际 Webhook URL。 以下示例使用 GET 请求,您也可以使用在 HTTP 方法中设置的任何 HTTP 方法。

发起无参数的 HTTP 请求:

curl <https://your-n8n.url/webhook/path>

发起带正文参数的 HTTP 请求:

curl -X POST <https://your-n8n.url/webhook/path> -d 'key=value'

发起带头部参数的 HTTP 请求:

curl -X POST <https://your-n8n.url/webhook/path> -H 'key:value'

发起传输文件的 HTTP 请求:

curl -X POST <https://your-n8n.url/webhook/path> -F 'key=@/path/to/file'

---|--- 将 /path/to/file 替换为您要发送的文件路径。

发送字符串类型的响应#

默认情况下,响应格式为 JSON 或数组。要发送字符串类型的响应:

  1. 选择 Response Mode > When Last Node Finishes
  2. 选择 Response Data > First Entry JSON
  3. 选择 Add Option > Property Name
  4. 输入包含响应的属性名称,默认为 data
  5. 将 Edit Fields 节点 连接到 Webhook 节点。
  6. 在 Edit Fields 节点中,选择 Add Value > String
  7. Name 字段中输入属性名称,该名称应与步骤 4 中的属性名称一致。
  8. Value 字段中输入字符串值。
  9. Keep Only Set 切换为开启状态(绿色)。

调用 Webhook 时,它会发送来自"编辑字段"节点的字符串响应。

测试 URL 与生产 URL#

n8n 为每个 Webhook 节点生成两个 Webhook URL测试 URL生产 URL

在构建或测试工作流时,请使用 测试 URL。当您准备在生产环境中使用 Webhook URL 时,请使用 生产 URL

URL 类型触发方式监听时长是否在编辑器界面显示数据
测试 URL选择 监听测试事件 并从源触发测试事件120 秒!✅
生产 URL激活工作流直至工作流停用!❌

更多信息请参阅工作流开发。

白名单中的 IP 地址连接失败#

如果您无法从 IP 白名单中的地址连接,请检查 n8n 是否运行在反向代理之后。

如果是这种情况,请将 N8N_PROXY_HOPS 环境变量 设置为 n8n 运行所在的反向代理数量。

每个路径和方法只能有一个 Webhook#

n8n 只允许为每个路径和 HTTP 方法组合(例如,对 /my-requestGET 请求)注册一个 Webhook。这避免了应接收请求的 Webhook 出现歧义。

如果您收到所选路径和方法已被使用的消息,您可以:

  • 停用存在冲突 Webhook 的工作流。
  • 更改其中一个冲突 Webhook 的路径和/或方法。

n8n Cloud 超时设置#

n8n Cloud 使用 Cloudflare 来防御恶意流量。如果您的 Webhook 在 100 秒内未能响应,传入请求将失败并返回 524 状态码。 因此,对于可能超过此限制的长时间运行流程,您可能需要通过配置两个独立的 Webhook 来引入轮询逻辑:

  • 第一个 Webhook 用于启动长时间运行流程并立即返回响应
  • 第二个 Webhook 用于定期查询流程状态,并在流程完成后获取结果