HTTP Request 节点#
HTTP Request 节点是 n8n 中功能最丰富的节点之一。它允许您向任何具有 REST API 的应用程序或服务发起 HTTP 请求以查询数据。您可以将 HTTP Request 节点作为常规节点使用,或将其连接到 AI 智能体 作为 工具 使用。
使用此节点时,您实际上是在创建 REST API 调用。您需要对基本的 API 术语和概念有一定了解。
创建 HTTP 请求有两种方式:配置 节点参数 或 导入 curl 命令。
凭据配置
有关设置身份验证的指南,请参阅 HTTP Request 凭据。
节点参数#
请求方法#
选择要使用的请求方法:
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
URL#
输入要使用的 API 端点地址。
身份验证#
当预定义凭据类型选项可用时,n8n 推荐使用该选项。与配置通用凭据相比,它提供了更简便的凭据设置和管理方式。
预定义凭据#
适用于 n8n 支持的集成(包括内置节点和社区节点)。使用预定义凭据类型可直接进行自定义操作而无需额外配置。更多信息请参阅 自定义 API 操作。
通用凭据#
适用于 n8n 不支持的集成。您需要手动配置身份验证流程,包括指定所需的 API 端点、必要参数和认证方法。
您可以选择以下认证方法之一:
- 基础认证(Basic auth)
- 自定义认证(Custom auth)
- 摘要认证(Digest auth)
- 请求头认证(Header auth)
- OAuth1 API
- OAuth2 API
- 查询参数认证(Query auth)
请参阅 HTTP 请求凭据 了解如何设置每种凭据类型。
发送查询参数#
查询参数在 HTTP 请求中起到过滤器的作用。如果您交互的 API 支持查询参数,且您发起的请求需要过滤条件,请启用此选项。
通过以下方式指定查询参数:
- 使用下方字段:输入查询参数的名称/值对。要添加更多查询参数名称/值对,请选择添加参数。名称为要过滤的字段名称,值为过滤条件。
- 使用 JSON:输入 JSON 来定义查询参数。
详细指南请参考您所用服务的 API 文档。
发送请求头#
使用此参数可随请求发送请求头。请求头包含与请求相关的元数据或上下文信息。
通过以下方式指定请求头:
- 使用下方字段:输入请求头参数的名称/值对。要添加更多请求头参数名称/值对,请选择添加参数。名称为要设置的请求头,值为该请求头对应的值。
- 使用 JSON:输入 JSON 来定义请求头参数。
详细指南请参考您所用服务的 API 文档。
发送请求体#
如果需要在 API 请求中发送请求体,请启用此选项。
然后选择最符合您要发送内容格式的请求体内容类型。
表单 URL 编码#
使用此选项可将请求体以 application/x-www-form-urlencoded 格式发送。
通过以下方式指定请求体:
- 使用下方字段:输入请求体参数的名称/值对。要添加更多请求体参数名称/值对,请选择添加参数。名称应为表单字段名,值为要设置的字段值。
- 使用单字段:在单个请求体参数中输入名称/值对,格式为
字段名1=值1&字段名2=值2。
请参考您服务的 API 文档获取详细指南。
表单数据#
使用此选项以 multipart/form-data 格式发送请求体。
通过选择参数类型来配置您的主体参数:
- 选择表单数据可输入名称/值对
- 选择 n8n 二进制文件可从节点有权访问的文件中提取主体内容
- 名称:输入要设置字段的标识符
- 输入数据字段名称:输入包含待处理二进制文件数据的传入字段名称
选择添加参数可输入更多参数。 请参考您服务的 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 支持分页,您可以通过增量方式获取数据。具体操作是:使用分页限制参数调用 /users 接口,并通过页码或 URL 指示 API 返回指定页面。假设您设置每页限额为 10 并从第 0 页开始,API 将返回前 10 条用户数据。随后您可通过递增页码值继续调用,逐页获取后续数据。
配置分页设置:
- 分页模式:
- 关闭:禁用分页功能
- 每次请求更新参数:需要为每个请求动态设置参数时使用
- 响应包含下一页 URL:当 API 响应中包含下一页地址时使用。可通过表达式设置 下一页 URL
具体配置示例请参阅 HTTP 请求节点应用指南 | 分页。
n8n 为分页场景下的 HTTP 节点请求与响应提供了内置变量:
| 变量名 | 描述说明 |
|---|---|
$pageCount | 分页计数器。记录节点已获取的页面数量 |
$request | HTTP 节点发送的请求对象 |
$response | HTTP 调用的响应对象。包含 $response.body、$response.headers 和 $response.statusCode。其中 body 和 headers 的具体内容取决于 API 返回的数据 |
API 差异说明
不同 API 的分页实现方式存在差异。请查阅具体 API 文档以获取详细信息,需要重点关注:
- API 是否提供下一页 URL?
- 是否存在针对页面尺寸或页码的特定限制?
- API 返回数据的结构形式
代理设置#
当需要指定 HTTP 代理时使用此选项。
输入请求应使用的代理地址。此设置优先级高于通过 HTTP_PROXY、HTTPS_PROXY 或 ALL_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 请求节点。 导入 curl 命令的步骤:
- 在 HTTP 请求节点的 参数 选项卡中,选择 导入 cURL。此时将打开 导入 cURL 命令 模态框。
- 将 curl 命令粘贴到文本框中。
- 选择 导入。n8n 会将请求配置加载到节点字段中,此操作将覆盖所有现有配置。
模板与示例#
构建你的第一个 WhatsApp 聊天机器人 作者:Jimleuk 查看模板详情 使用 AI 抓取并总结网页内容 作者:n8n 团队 查看模板详情 使用 Seedance 生成 AI 病毒式传播视频并上传至 TikTok、YouTube 和 Instagram 作者:Firas 博士 查看模板详情 浏览 HTTP Request 集成模板,或搜索所有模板
常见问题#
有关常见问题及其建议解决方案,请参阅常见问题。 与文档互动 本页面 !点赞有帮助 !点踩没帮助 感谢您的反馈! 提交 上一页 HTML 下一页 常见问题 基于 Material for MkDocs Insiders 构建