N8N中文教程
代码开发/Cookbook/HTTP_Request_node

HTTP 请求节点中的分页功能#

HTTP 请求节点支持分页功能。本页面提供了一些配置示例,包括使用 HTTP 节点变量。 更多关于该节点的信息,请参考 HTTP Request

API 差异

不同的 API 以不同方式实现分页。请查阅你所使用的 API 的文档了解详细信息。你需要弄清楚以下问题:

  • API 是否在响应中提供下一页的 URL?
  • 分页大小或页码是否存在 API 特定的限制?
  • API 返回的数据结构是怎样的?

启用分页#

在 HTTP 请求节点中,选择 添加选项 > 分页

使用响应中的 URL 获取下一页(通过 $response#

如果 API 在其响应中返回了下一页的 URL:

  1. 分页模式 (Pagination Mode) 设置为 响应包含下一页 URL (Response Contains Next URL)。n8n 会显示此选项的相关参数。
  2. 下一页 URL (Next URL) 中,使用一个 表达式 来设置 URL。具体表达式取决于你的 API 返回的数据结构。例如,如果 API 在响应体中包含一个名为 next-page 的字段:
1

| ``` {{$response.body["next-page"]}}


---|---

## 按页码获取下一页(使用 `$pageCount`)[#](https://docs.n8n.io/code/cookbook/http-node/pagination/#get-the-next-page-by-number-using-pagecount "永久链接")
如果你使用的 API 支持通过页码指定特定页面:
  1. 将 **分页模式 (Pagination Mode)** 设置为 **每次请求更新一个参数 (Update a Parameter in Each Request)**。
  2. 将 **类型 (Type)** 设置为 **查询参数 (Query)**。
  3. 输入查询参数的 **名称 (Name)**。这取决于你的 API,通常在其文档中有说明。例如,某些 API 使用名为 `page` 的查询参数来指定页码,因此此处 **名称** 应填写 `page`。
  4. 鼠标悬停在 **值 (Value)** 上,并开启 **表达式 (Expression)** 开关。
  5. 输入 `{{ $pageCount + 1 }}`

`$pageCount` 是 HTTP 请求节点已获取的页数。它从零开始。大多数 API 的分页是从 1 开始计数的(第一页是第一页)。这意味着将 `$pageCount` 加 `+1` 后,节点在第一次循环时会获取第一页,第二次循环时获取第二页,依此类推。

## 通过请求体参数进行分页[#](https://docs.n8n.io/code/cookbook/http-node/pagination/#navigate-pagination-through-body-parameters "永久链接")

如果所使用的 API 支持通过请求体(body)参数进行分页:
  1. 将 HTTP 请求方法设置为 **POST**
  2. 将 **分页模式(Pagination Mode)** 设置为 **在每次请求中更新一个参数**
  3. 在 **类型(Type)** 参数中选择 **Body**
  4. 输入请求体参数的 **名称(Name)**。这取决于你使用的 API,`page` 是常见的键名。
  5. 将鼠标悬停在 **值(Value)** 上,并开启 **表达式(Expression)** 开关
  6. 输入 `{{ $pageCount + 1 }}`

## 在查询参数中设置页面大小[#](https://docs.n8n.io/code/cookbook/http-node/pagination/#set-the-page-size-in-the-query "永久链接")

如果所使用的 API 支持在查询参数中设置页面大小:
  1. 在主节点参数中选择 **发送查询参数(Send Query Parameters)**(这是你首次打开节点时看到的参数,而不是“选项”内的设置)
  2. 输入查询参数的 **名称(Name)**。这取决于你的 API。例如,许多 API 使用名为 `limit` 的查询参数来设置页面大小,因此 **名称** 应填写为 `limit`
  3. 在 **值(Value)** 中输入你希望的页面大小