Skip to content

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 端点、必要参数以及认证方法。

您可以选择以下认证方式之一:

  • 基础认证(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 二进制文件可从节点可访问的文件中提取请求体内容
    • 名称:输入要设置的字段 ID
    • 输入数据字段名:输入包含待处理二进制文件数据的输入字段名称

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

具体操作请参考您所使用服务的 API 文档。

JSON#

使用此选项以 JSON 格式发送请求体。

指定请求体的方式有以下两种:

  • 使用下方字段:输入名称/对的请求体参数。如需添加更多参数对,请选择添加参数
  • 使用 JSON:直接输入JSON 来定义请求体。

具体操作请参考您所使用服务的 API 文档。

n8n 二进制文件#

使用此选项以 n8n 中存储的文件内容作为请求体。

输入数据字段名中输入包含文件的输入字段名称。

关于文件格式的具体要求,请参考您所使用服务的 API 文档。

Raw(原始数据)#

使用此选项发送原始数据作为请求体。

  • Content Type:输入用于原始请求体内容的 Content-Type 头部。完整 MIME 内容类型列表请参考 IANA 的 媒体类型 文档。
  • Body:输入要发送的原始请求体内容。

详细指导请参考您所用服务的 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 支持分页,您可以逐步获取数据。具体做法是:使用分页限制值和页码(或 URL)调用 /users,告知 API 需要返回哪个页面的数据。假设您设置限制值为 10 并从第 0 页开始,API 会在响应中返回前 10 个用户。然后您再次调用 API 并将页码加 1,即可获取接下来的 10 条结果。

配置分页设置:

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

具体配置示例请参考 HTTP 请求节点使用手册 | 分页功能

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

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

/// 注意 | API 差异 不同的 API 以不同方式实现分页功能。请查阅您所用 API 的文档以获取详细信息。您需要了解以下内容:

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

代理设置#

当需要指定 HTTP 代理时使用此选项。

输入请求应使用的代理地址。

超时设置#

此选项用于设置节点等待服务器发送响应头(并开始响应主体)的最长时间。对于超过该值的初始响应,节点将中止请求。

输入等待的超时时间(毫秒)。

仅工具选项#

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

优化响应#

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

优化响应时,您需要选择预期的响应类型,这将决定您可以配置的其他选项。支持的响应类型包括:

JSON#

当期望获取 JSON 响应时,您可以通过以下选项配置要使用的 JSON 数据部分:

  • 包含数据的字段:该字段用于标识 JSON 对象中包含相关数据的特定部分。留空则表示使用整个响应。
  • 包含字段:用于选择响应对象中需要包含的字段。有三种选择:
    • 全部:包含响应对象中的所有字段。
    • 选定:仅包含下方指定的字段。
      • 字段:以逗号分隔的字段列表,用于指定要包含在响应中的字段。可以使用点表示法指定嵌套字段。您可以从输入面板拖动字段添加到字段列表中。
    • 排除:包含除下方指定字段外的所有字段。
      • 字段:以逗号分隔的字段列表,用于指定要从响应中排除的字段。可以使用点表示法指定嵌套字段。您可以从输入面板拖动字段添加到字段列表中。

HTML#

当期望获取 HTML 响应时,您可以通过以下选项识别 HTML 文档中与 LLM 相关的部分并优化响应:

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

文本#

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

  • 截断响应:是否限制响应大小以节省 token 使用量。
    • 最大响应字符数:HTML 响应中包含的最大字符数。默认值为 1000。

导入 curl 命令#

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

您可以使用 curl 调用 REST API。如果目标服务的 API 文档提供了 curl 示例,您可以直接从文档复制到 n8n 中配置 HTTP 请求节点。

导入 curl 命令的步骤:

  1. 在 HTTP 请求节点的参数选项卡中,选择导入 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

常见问题#

关于常见问题或错误及其解决方案,请参阅常见问题