Skip to content

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.statusCodebodyheaders 的内容取决于 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 命令:

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

模板和示例#

Template widget placeholder.

常见问题#

对于常见问题或故障和建议的解决方案,请参考 常见问题