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 将请求配置加载到节点字段中。这将覆盖任何现有配置。

模板和示例#

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

常见问题#

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