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.statusCode 。body 和 headers 的内容取决于 API 发送的数据。 |
API 差异
不同的 API 以不同方式实现分页。请查看您使用的 API 文档了解详细信息。您需要了解以下内容:
- API 是否提供下一页的 URL?
- 是否有 API 特定的页面大小或页码限制?
- API 返回的数据结构。
代理#
如果您需要指定 HTTP 代理,请使用此选项。
输入请求应使用的代理。这会覆盖使用 HTTP_PROXY
、HTTPS_PROXY
或 ALL_PROXY
环境变量定义的全局设置。
超时#
使用此选项设置节点应等待服务器发送响应标头(并开始响应主体)的时间。节点会中止超过此值的初始响应请求。
输入要等待的超时时间(以毫秒为单位)。
仅限工具的选项#
优化响应#
是否优化工具响应以减少传递给 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 命令:
- 从 HTTP Request 节点的参数选项卡中,选择导入 cURL。导入 cURL 命令模式打开。
- 将您的 curl 命令粘贴到文本框中。
- 选择导入。n8n 将请求配置加载到节点字段中。这会覆盖任何现有配置。
模板和示例#
常见问题#
有关常见问题或问题和建议的解决方案,请参阅常见问题。
🚀 与作者交流

📚 教程 💡 案例 🔧 技巧

⚡ 快答 🎯 定制 🚀 支持