HTTP Request HTTP请求节点#
HTTP Request HTTP请求节点是 n8n 中最通用的节点之一。它允许您发出 HTTP 请求来查询任何具有 REST API 的应用程序或服务的数据。您可以将 HTTP Request HTTP请求节点用作常规节点或附加到 AI agent AI代理 以用作 tool 工具。
使用此节点时,您正在创建 REST API 调用。您需要对基本 API 术语和概念有一定的了解。
有两种创建 HTTP 请求的方法:配置 节点参数 或 导入 curl 命令。
Credentials 凭据
请参考 HTTP Request credentials HTTP请求凭据 获取设置身份验证的指导。
Node parameters 节点参数#
Method 方法#
选择用于请求的方法:
- DELETE 删除
- GET 获取
- HEAD
- OPTIONS
- PATCH
- POST 发送
- PUT
URL#
输入您要使用的端点。
Authentication 身份验证#
n8n 建议在可用时使用 Predefined Credential Type 预定义凭据类型 选项。与配置通用凭据相比,它提供了一种更简单的设置和管理凭据的方法。
Predefined credentials 预定义凭据#
适用于 n8n 支持的集成的凭据,包括内置节点和社区节点。使用 Predefined Credential Type 预定义凭据类型 进行自定义操作,无需额外设置。请参考 Custom API operations 自定义API操作 了解更多信息。
Generic credentials 通用凭据#
适用于 n8n 不支持的集成的凭据。您需要手动配置身份验证过程,包括指定所需的 API 端点、必要的参数和身份验证方法。
您可以选择以下方法之一:
- Basic auth 基本认证
- Custom auth 自定义认证
- Digest auth 摘要认证
- Header auth 头部认证
- OAuth1 API
- OAuth2 API
- Query auth 查询认证
请参考 HTTP request credentials HTTP请求凭据 了解设置每种凭据类型的更多信息。
Send Query Parameters 发送查询参数#
查询参数充当 HTTP 请求的过滤器。如果您正在交互的 API 支持它们,并且您正在进行的请求需要过滤器,请开启此选项。
指定您的查询参数 使用可用选项之一:
- Using Fields Below 使用下面的字段:输入查询参数的 Name 名称/Value 值 对。要输入更多查询参数名称/值对,请选择 Add Parameter 添加参数。名称是您要过滤的字段的名称,值是过滤器值。
- Using JSON 使用JSON:输入 JSON 来定义您的查询参数。
请参考您服务的 API 文档获取详细指导。
Send Headers 发送头部#
使用此参数与您的请求一起发送头部。头部包含有关您请求的元数据或上下文。
指定头部 使用可用选项之一:
- Using Fields Below 使用下面的字段:输入头部参数的 Name 名称/Value 值 对。要输入更多头部参数名称/值对,请选择 Add Parameter 添加参数。名称是您要设置的头部,值是您要为该头部传递的值。
- Using JSON 使用JSON:输入 JSON 来定义您的头部参数。
请参考您服务的 API 文档获取详细指导。
Send Body 发送主体#
如果您需要在 API 请求中发送主体,请开启此选项。
然后选择最符合您要发送的主体内容格式的 Body Content Type 主体内容类型。
Form URLencoded#
使用此选项将您的主体作为 application/x-www-form-urlencoded
发送。
指定主体 使用可用选项之一:
- Using Fields Below 使用下面的字段:输入主体参数的 Name 名称/Value 值 对。要输入更多主体参数名称/值对,请选择 Add Parameter 添加参数。名称应该是表单字段名称,值是您希望将该字段设置为的内容。
- Using Single Field 使用单个字段:在单个 Body 主体 参数中输入您的名称/值对,格式为
fieldname1=value1&fieldname2=value2
。
请参考您服务的 API 文档获取详细指导。
Form-Data#
使用此选项将您的主体作为 multipart/form-data
发送。
通过选择 Parameter Type 参数类型 配置您的 Body Parameters 主体参数:
- 选择 Form Data 表单数据 输入 Name 名称/Value 值 对。
- 选择 n8n Binary File n8n二进制文件 从节点可访问的文件中提取主体。
- Name 名称:输入要设置的字段的 ID。
- Input Data Field Name 输入数据字段名称:输入包含您要处理的二进制文件数据的传入字段的名称。
选择 Add Parameter 添加参数 输入更多参数。
请参考您服务的 API 文档获取详细指导。
JSON#
使用此选项将您的主体作为 JSON 发送。
指定主体 使用可用选项之一:
- Using Fields Below 使用下面的字段:输入主体参数的 Name 名称/Value 值 对。要输入更多主体参数名称/值对,请选择 Add Parameter 添加参数。
- Using JSON 使用JSON:输入 JSON 来定义您的主体。
请参考您服务的 API 文档获取详细指导。
n8n Binary File n8n二进制文件#
使用此选项将存储在 n8n 中的文件内容作为主体发送。
输入包含文件的传入字段的名称作为 Input Data Field Name 输入数据字段名称。
请参考您服务的 API 文档获取如何格式化文件的详细指导。
Raw 原始#
使用此选项在主体中发送原始数据。
- Content Type 内容类型:输入用于原始主体内容的
Content-Type
头部。请参考 IANA Media types 媒体类型 文档获取 MIME 内容类型的完整列表。 - Body 主体:输入要发送的原始主体内容。
请参考您服务的 API 文档获取详细指导。
Node options 节点选项#
选择 Add Option 添加选项 查看和选择这些选项。除非另有说明,选项对所有参数都可用。
Array Format in Query Parameters 查询参数中的数组格式#
Option availability 选项可用性
此选项仅在您开启 Send Query Parameters 发送查询参数 时可用。
使用此选项控制查询参数中包含的数组的格式。从这些选项中选择:
- No Brackets 无括号:数组将格式化为数组中每个项目的 name=value,例如:
foo=bar&foo=qux
。 - Brackets Only 仅括号:节点在每个数组名称后添加方括号,例如:
foo[]=bar&foo[]=qux
。 - Brackets with Indices 带索引的括号:节点在每个数组名称后添加带索引值的方括号,例如:
foo[0]=bar&foo[1]=qux
。
请参考您服务的 API 文档获取使用哪个选项的指导。
Batching 批处理#
控制如何批处理大量输入项:
- Items per Batch 每批项目数:输入每批中包含的输入项数量。
- Batch Interval 批处理间隔:输入每批请求之间等待的时间(毫秒)。输入 0 表示无批处理间隔。
Ignore SSL Issues 忽略SSL问题#
默认情况下,n8n 仅在 SSL 证书验证成功时下载响应。如果您希望即使 SSL 证书验证失败也下载响应,请开启此选项。
Lowercase Headers 小写头部#
选择是否将头部名称小写化(开启,默认)或不小写化(关闭)。
Redirects 重定向#
选择是否跟随重定向(默认开启)或不跟随(关闭)。如果开启,在 Max Redirects 最大重定向数 中输入请求应跟随的最大重定向数。
Response 响应#
使用此选项设置有关预期 API 响应的一些详细信息,包括:
- Include Response Headers and Status 包括响应头部和状态:默认情况下,节点仅返回主体。开启此选项以返回完整响应(头部和响应状态码)以及主体。
- Never Error 永不错误:默认情况下,节点仅在响应返回 2xx 代码时返回成功。开启此选项以无论返回什么代码都返回成功。
- Response Format 响应格式:选择数据返回的格式。从以下选择:
- Autodetect 自动检测(默认):节点根据返回的数据检测并格式化响应。
- File 文件:选择此选项将响应放入文件中。在 Put Output in Field 将输出放入字段 中输入您希望文件返回的字段名称。
- JSON:选择此选项将响应格式化为 JSON。
- Text 文本:选择此选项将响应格式化为纯文本。在 Put Output in Field 将输出放入字段 中输入您希望文件返回的字段名称。
Pagination 分页#
使用此选项分页结果,适用于处理太大而无法在单次调用中返回的查询结果。
Inspect the API data first 首先检查API数据
分页的某些选项需要了解您正在使用的 API 返回的数据。在设置分页之前,请检查 API 文档,或在不分页的情况下进行 API 调用,以查看其返回的数据。
Understand pagination 理解分页
分页意味着将大量数据拆分为多个页面。每页的数据量取决于您设置的限制。
例如,您对名为 /users
的端点进行 API 调用。API 想要返回 300 个用户的信息,但这对于 API 在一个响应中发送来说数据太多。
如果 API 支持分页,您可以增量获取数据。为此,您使用分页限制调用 /users
,以及页码或 URL 来告诉 API 发送哪一页。在此示例中,假设您使用限制 10,并从页面 0 开始。API 在其响应中发送前 10 个用户。然后您再次调用 API,将页码增加 1,以获取接下来的 10 个结果。
配置分页设置:
- Pagination Mode 分页模式:
- Off 关闭:关闭分页。
- Update a Parameter in Each Request 在每个请求中更新参数:当您需要为每个请求动态设置参数时使用此选项。
- Response Contains Next URL 响应包含下一个URL:当 API 响应包含下一页的 URL 时使用此选项。使用表达式设置 Next URL 下一个URL。
有关示例设置,请参考 HTTP Request node cookbook | Pagination HTTP请求节点手册 | 分页。
n8n provides built-in variables for working with HTTP node requests and responses when using pagination:
变量 | 描述 |
---|---|
$pageCount |
分页计数。跟踪节点已获取的页数。 |
$request |
HTTP 节点发送的请求对象。 |
$response |
HTTP 调用的响应对象。包括 $response.body 、$response.headers 和 $response.statusCode 。body 和 headers 的内容取决于 API 发送的数据。 |
API 差异
不同的 API 以不同的方式实现分页。请查看您正在使用的 API 的 API 文档以获取详细信息。您需要了解以下内容:
- API 是否提供下一页的 URL?
- 是否有 API 特定的页面大小或页码限制?
- API 返回的数据结构。
Proxy 代理#
如果您需要指定 HTTP 代理,请使用此选项。
输入请求应使用的 Proxy 代理。
Timeout 超时#
使用此选项设置节点应等待服务器发送响应头部(并开始响应主体)的时间长度。节点将中止超过此初始响应值的请求。
输入要等待的 Timeout 超时 时间(毫秒)。
Tool-only options 仅限工具选项#
以下选项仅在作为 tool 工具 附加到 AI agent AI代理 时可用。
Optimize Response 优化响应#
是否优化工具响应以减少传递给 LLM 的数据量。优化响应可以降低成本,并可以帮助 LLM 忽略不重要的细节,通常会带来更好的结果。
当优化响应时,您选择一个预期的响应类型,这决定了您可以配置的其他选项。支持的响应类型有:
JSON#
当期待 JSON 响应时,您可以通过以下选择配置 JSON 数据的哪些部分用作响应:
- Field Containing Data 包含数据的字段:此字段标识包含您相关数据的 JSON 对象的特定部分。您可以将此留空以使用整个响应。
- Include Fields 包含字段:这是您选择在响应对象中想要哪些字段的方法。有三个选择:
- All 全部:包含响应对象中的所有字段。
- Selected 已选择:仅包含下面指定的字段。
- Fields 字段:要包含在响应中的字段的逗号分隔列表。您可以使用点表示法指定嵌套字段。您可以从输入面板拖动字段以将其添加到字段列表中。
- Exclude 排除:包含所有字段,除了 下面指定的字段。
- Fields 字段:要从响应中排除的字段的逗号分隔列表。您可以使用点表示法指定嵌套字段。您可以从输入面板拖动字段以将其添加到字段列表中。
HTML#
当期待 HTML 时,您可以识别 HTML 文档中与 LLM 相关的部分,并使用以下选项优化响应:
- Selector (CSS) 选择器(CSS):要包含在响应 HTML 中的特定元素或元素类型。默认使用
body
元素。 - Return Only Content 仅返回内容:是否从响应中剥离 HTML 标签和属性,仅留下实际内容。这使用更少的令牌,可能更容易让模型理解。
- Elements To Omit 要省略的元素:提取内容时要排除的 CSS 选择器的逗号分隔列表。
- Truncate Response 截断响应:是否限制响应大小以节省令牌。
- Max Response Characters 最大响应字符数:HTML 响应中包含的最大字符数。默认值是 1000。
Text 文本#
当期待通用 Text 文本 响应时,您可以使用以下选项优化结果:
- Truncate Response 截断响应:是否限制响应大小以节省令牌。
- Max Response Characters 最大响应字符数:HTML 响应中包含的最大字符数。默认值是 1000。
Import curl command 导入curl命令#
curl 是一个用于通过 URL 传输数据的命令行工具和库。
您可以使用 curl 调用 REST API。如果您要使用的服务的 API 文档提供了 curl 示例,您可以从文档中复制它们并将其导入到 n8n 中来配置 HTTP Request HTTP请求节点。
导入 curl 命令:
- 从 HTTP Request HTTP请求节点的 Parameters 参数 选项卡,选择 Import cURL 导入cURL。Import cURL command 导入cURL命令 模态框打开。
- 将您的 curl 命令粘贴到文本框中。
- 选择 Import 导入。n8n 将请求配置加载到节点字段中。这将覆盖任何现有配置。
模板和示例#
常见问题#
对于常见问题或故障和建议的解决方案,请参考 常见问题。