跳转至

HTTP Request 节点#

HTTP Request 节点是 n8n 中最多功能的节点之一。它允许您发出 HTTP 请求以查询任何具有 REST API 的应用程序或服务的数据。您可以将 HTTP Request 节点作为常规节点使用,或将其附加到 AI 代理上作为工具使用。

使用此节点时,您正在创建 REST API 调用。您需要对基本 API 术语和概念有一些了解。

创建 HTTP 请求有两种方式:配置节点参数导入 curl 命令

凭证

有关设置身份验证的指导,请参阅 HTTP Request 凭证

节点参数#

方法#

选择用于请求的方法:

  • DELETE
  • GET
  • HEAD
  • OPTIONS
  • PATCH
  • POST
  • PUT

URL#

输入您要使用的端点。

身份验证#

n8n 建议在可用时使用预定义凭证类型选项。与配置通用凭证相比,它提供了一种更简单的设置和管理凭证的方法。

预定义凭证#

n8n 支持的集成凭证,包括内置和社区节点。使用预定义凭证类型进行自定义操作,无需额外设置。有关更多信息,请参阅自定义 API 操作

通用凭证#

n8n 不支持的集成凭证。您需要手动配置身份验证过程,包括指定所需的 API 端点、必要参数和身份验证方法。

您可以选择以下方法之一:

  • 基本身份验证
  • 自定义身份验证
  • 摘要身份验证
  • 标头身份验证
  • OAuth1 API
  • OAuth2 API
  • 查询身份验证

有关设置每种凭证类型的更多信息,请参阅 HTTP 请求凭证

发送查询参数#

查询参数在 HTTP 请求中充当过滤器。如果您交互的 API 支持它们,并且您发出的请求需要过滤器,请打开此选项。

使用可用选项之一指定您的查询参数

  • 使用下面的字段:输入查询参数名称/对。要输入更多查询参数名称/值对,请选择添加参数。名称是您要过滤的字段的名称,值是过滤器值。
  • 使用 JSON:输入 JSON 来定义您的查询参数。

有关详细指导,请参阅您服务的 API 文档。

发送标头#

使用此参数向您的请求发送标头。标头包含关于您的请求的元数据或上下文。

使用可用选项之一指定标头

  • 使用下面的字段:输入标头参数名称/对。要输入更多标头参数名称/值对,请选择添加参数。名称是您要设置的标头,值是您要为该标头传递的值。
  • 使用 JSON:输入 JSON 来定义您的标头参数。

有关详细指导,请参阅您服务的 API 文档。

发送主体#

如果您需要向 API 请求发送主体,请打开此选项。

然后选择最符合您要发送的主体内容格式的主体内容类型

Form URLencoded#

使用此选项将您的主体作为 application/x-www-form-urlencoded 发送。

使用可用选项之一指定主体

  • 使用下面的字段:输入主体参数名称/对。要输入更多主体参数名称/值对,请选择添加参数。名称应该是表单字段名称,值是您希望将该字段设置为的值。
  • 使用单个字段:在单个主体参数中输入您的名称/值对,格式为 fieldname1=value1&fieldname2=value2

有关详细指导,请参阅您服务的 API 文档。

Form-Data#

使用此选项将您的主体作为 multipart/form-data 发送。

通过选择参数类型来配置您的主体参数

  • 选择表单数据以输入名称/对。
  • 选择 n8n 二进制文件以从节点可访问的文件中提取主体。
    • 名称:输入要设置的字段的 ID。
    • 输入数据字段名称:输入包含您要处理的二进制文件数据的传入字段的名称。

选择添加参数以输入更多参数。

有关详细指导,请参阅您服务的 API 文档。

JSON#

使用此选项将您的主体作为 JSON 发送。

使用可用选项之一指定主体

  • 使用下面的字段:输入主体参数名称/对。要输入更多主体参数名称/值对,请选择添加参数
  • 使用 JSON:输入 JSON 来定义您的主体。

有关详细指导,请参阅您服务的 API 文档。

n8n 二进制文件#

使用此选项将 n8n 中存储的文件的内容作为主体发送。

输入包含文件的传入字段的名称作为输入数据字段名称

有关如何格式化文件的详细指导,请参阅您服务的 API 文档。

原始数据#

使用此选项在主体中发送原始数据。

  • 内容类型:输入用于原始主体内容的 Content-Type 标头。有关 MIME 内容类型的完整列表,请参阅 IANA 媒体类型文档。
  • 主体:输入要发送的原始主体内容。

有关详细指导,请参阅您服务的 API 文档。

节点选项#

选择添加选项以查看和选择这些选项。除非另有说明,否则所有参数都可使用选项。

查询参数中的数组格式#

选项可用性

此选项仅在您打开发送查询参数时可用。

使用此选项控制查询参数中包含的数组的格式。从这些选项中选择:

  • 无括号:数组将格式化为数组中每个项的 name=value,例如:foo=bar&foo=qux
  • 仅括号:节点在每个数组名称后添加方括号,例如:foo[]=bar&foo[]=qux
  • 带索引的括号:节点在每个数组名称后添加带索引值的方括号,例如:foo[0]=bar&foo[1]=qux

有关使用哪个选项的指导,请参阅您服务的 API 文档。

批处理#

控制如何批处理大量输入项:

  • 每批次项目数:输入每批次中包含的输入项目数量。
  • 批次间隔:输入每批次请求之间等待的时间(以毫秒为单位)。输入 0 表示无批次间隔。

忽略 SSL 问题#

默认情况下,n8n 仅在 SSL 证书验证成功时下载响应。如果您希望即使 SSL 证书验证失败也下载响应,请打开此选项。

小写标头#

选择是否将标头名称转为小写(默认开启)或不转为小写(关闭)。

重定向#

选择是否跟随重定向(默认开启)或不跟随(关闭)。如果开启,在最大重定向数中输入请求应跟随的最大重定向次数。

响应#

使用此选项设置关于预期 API 响应的一些细节,包括:

  • 包含响应标头和状态:默认情况下,节点仅返回主体。打开此选项可返回完整响应(标头和响应状态代码)以及主体。
  • 从不报错:默认情况下,节点仅在响应返回 2xx 代码时才返回成功。打开此选项可无论返回什么代码都返回成功。
  • 响应格式:选择数据返回的格式。可选择:
    • 自动检测(默认):节点根据返回的数据检测和格式化响应。
    • 文件:选择此选项将响应放入文件中。在将输出放在字段中输入您希望返回文件的字段名称。
    • JSON:选择此选项将响应格式化为 JSON。
    • 文本:选择此选项将响应格式化为纯文本。在将输出放在字段中输入您希望返回文件的字段名称。

分页#

使用此选项对结果进行分页,对于处理对 API 来说太大而无法在单次调用中返回的查询结果很有用。

首先检查 API 数据

分页的某些选项需要了解您正在使用的 API 返回的数据。在设置分页之前,请检查 API 文档,或在不使用分页的情况下进行 API 调用,以查看它返回的数据。

理解分页

分页意味着将大量数据拆分为多个页面。每个页面上的数据量取决于您设置的限制。

例如,您对名为 /users 的端点进行 API 调用。API 希望发送回 300 个用户的信息,但这对 API 来说太多了,无法在一个响应中发送。

如果 API 支持分页,您可以逐步获取数据。要做到这一点,您使用分页限制和页码或 URL 来调用 /users,告诉 API 发送哪一页。在此示例中,假设您使用 10 的限制,从第 0 页开始。API 在其响应中发送前 10 个用户。然后您再次调用 API,将页码增加 1,以获取接下来的 10 个结果。

配置分页设置:

  • 分页模式
    • 关闭:关闭分页。
    • 在每个请求中更新参数:当您需要为每个请求动态设置参数时使用。
    • 响应包含下一个 URL:当 API 响应包含下一页的 URL 时使用。使用表达式设置下一个 URL

有关示例设置,请参阅 HTTP Request 节点指南 | 分页

在使用分页时,n8n 为处理 HTTP 节点请求和响应提供了内置变量:

变量 描述
$pageCount 分页计数。跟踪节点已获取的页面数量。
$request HTTP 节点发送的请求对象。
$response HTTP 调用的响应对象。包括 $response.body$response.headers$response.statusCodebodyheaders 的内容取决于 API 发送的数据。

API 差异

不同的 API 以不同方式实现分页。请查看您使用的 API 文档了解详细信息。您需要了解以下内容:

  • API 是否提供下一页的 URL?
  • 是否有 API 特定的页面大小或页码限制?
  • API 返回的数据结构。

代理#

如果您需要指定 HTTP 代理,请使用此选项。

输入请求应使用的代理。这会覆盖使用 HTTP_PROXYHTTPS_PROXYALL_PROXY 环境变量定义的全局设置。

超时#

使用此选项设置节点应等待服务器发送响应标头(并开始响应主体)的时间。节点会中止超过此值的初始响应请求。

输入要等待的超时时间(以毫秒为单位)。

仅限工具的选项#

以下选项仅在作为工具附加到 AI 代理时可用。

优化响应#

是否优化工具响应以减少传递给 LLM 的数据量。优化响应可以降低成本,并可以帮助 LLM 忽略不重要的细节,通常导致更好的结果。

在优化响应时,您选择预期的响应类型,这决定了您可以配置的其他选项。支持的响应类型是:

JSON#

当预期 JSON 响应时,您可以配置使用 JSON 数据的哪些部分作为响应,可选择以下选项:

  • 包含数据的字段:该字段标识 JSON 对象中包含您相关数据的特定部分。您可以将此留空以使用整个响应。
  • 包含字段:这是您选择您在响应对象中需要的字段的方式。有三个选择:
    • 全部:包含响应对象中的所有字段。
    • 选定的:仅包含下面指定的字段。
      • 字段:要包含在响应中的字段的逗号分隔列表。您可以使用点记号来指定嵌套字段。您可以从输入面板中拖放字段以将它们添加到字段列表中。
    • 排除:包含所有字段,除了下面指定的字段。
      • 字段:要从响应中排除的字段的逗号分隔列表。您可以使用点记号来指定嵌套字段。您可以从输入面板中拖放字段以将它们添加到字段列表中。

HTML#

当预期 HTML 响应时,您可以识别与 LLM 相关的 HTML 文档部分并使用以下选项优化响应:

  • 选择器 (CSS):要包含在响应 HTML 中的特定元素或元素类型。默认使用 body 元素。
  • 仅返回内容:是否从响应中剥离 HTML 标签和属性,仅留下实际内容。这使用更少的令牌,并且对模型来说可能更容易理解。
    • 要省略的元素:提取内容时要排除的 CSS 选择器的逗号分隔列表。
  • 截断响应:是否限制响应大小以节省令牌。
    • 最大响应字符数:要在 HTML 响应中包含的最大字符数。默认值为 1000。

文本#

当预期通用文本响应时,您可以使用以下选项优化结果:

  • 截断响应:是否限制响应大小以节省令牌。
    • 最大响应字符数:要在 HTML 响应中包含的最大字符数。默认值为 1000。

导入 curl 命令#

curl 是一个用于使用 URL 传输数据的命令行工具和库。

您可以使用 curl 调用 REST API。如果您要使用的服务的 API 文档提供了 curl 示例,您可以将它们从文档中复制到 n8n 中来配置 HTTP Request 节点。

导入 curl 命令:

  1. 从 HTTP Request 节点的参数选项卡中,选择导入 cURL导入 cURL 命令模式打开。
  2. 将您的 curl 命令粘贴到文本框中。
  3. 选择导入。n8n 将请求配置加载到节点字段中。这会覆盖任何现有配置。

模板和示例#

Building Your First WhatsApp Chatbot

by Jimleuk

View template details
Scrape and summarize webpages with AI

by n8n Team

View template details
AI agent that can scrape webpages

by Eduard

View template details
Browse HTTP 请求 integration templates, or search all templates

常见问题#

有关常见问题或问题和建议的解决方案,请参阅常见问题

此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持