Playground

Playground(侧边栏 > Playground)允许你使用真实密钥直接发送实时 API 请求,无需编写任何代码。这是测试新目标网站、调试异常响应或横向对比 Auto、Single、Proxy 与 Browser 的最快方式。

访问地址:foura.ai/dashboard#playground。

功能概述

一个表单,四种引擎,真实流量。

  • Auto:智能抓取。传入 URL 和一条 validate 规则,FourA 会自动选择可行的最低成本路径。
  • Single:直接 HTTP 抓取,具备高度拟真的浏览器级传输层特征
  • Proxy:托管轮换 proxy 抓取,可选指定目标可见的国家/地区
  • Browser:在 Chrome 浏览器实例中打开 URL,适用于 JS 渲染站点

请求会使用你在页面顶部选择的 API 密钥执行。用量会像生产调用一样计入该密钥的配额,因此测试时请注意控制套餐额度。

选择密钥

API 密钥下拉列表包含所有可用的有效密钥:My Keys 下是你个人的密钥,其后按你所属的组织分组列出。任何成员都可以使用所属组织的密钥,所产生的请求计入该组织所有者的套餐配额。请选择你希望扣费的密钥。如果你当前没有任何有效密钥,页面内提示会提供跳转链接,引导你前往 API Keys 页面创建。

选择模式

顶部的 Mode 行可在 Auto 和各手动引擎之间切换。选择 Auto 时,表单会切换为精简的 Auto 界面(URL 加上 validate 以及少量配置项)。两行配置始终显示:Mode: Auto,以及 Product: Single、Proxy、Browser。选中其中一个会自动取消选择另一个。切换产品会改变可见字段以及请求所指向的引擎。刷新页面时会保留当前选择。

模式 适用场景
Auto 新目标站点或多重防护混合站点。Auto 会选择成本最低的路径并记录有效方案。
Single 快速 HTTP 抓取。已知目标主机的首选模式。
Proxy 具备自动 proxy 轮换的抓取。需要指定目标可见的国家/地区时请设置 exitCountries。
Browser 在 Chrome 浏览器实例中加载页面。仅在执行 JavaScript 后才显示数据时使用。

构建请求

URL 行

顶行包含 HTTP 方法(GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS)、目标 URL 和 Send 按钮。Single、Proxy 和 Auto 支持所有方法。Browser 会忽略请求方法(Chrome 页面导航始终发起 GET 请求)以及请求体。

请求标签页

在 URL 行下方,五个标签页供你填写其他所有参数:

标签页 控制内容
UI 超时、重定向、标志、proxy、浏览器专属选项和 validate 规则的表单字段
Body 用于 POST / PUT / PATCH request 的自由格式 body
Headers 键值对形式的自定义 request header
Cookies 随 request 发送的 cookie
Raw 将要发送的完整 JSON payload,包含只读预览及 Copy JSON 按钮,下方附带 curl 复现命令

在 UI / Body / Headers / Cookies 中所做的任何更改都会实时反映在 Raw 中。您无法直接在 Raw 中输入内容:请在其他标签页中修改 request。任何包含非引擎默认值的标签页或折叠面板上都会显示红点,方便您一目了然地识别自定义配置。

UI 面板分区

UI 标签页将设置归类到各折叠面板中。留空字段将回退到引擎的 schema 默认值。不适用于当前 Mode 的面板会被隐藏。

  • Timeouts:timeout_ms、connect_timeout_ms、accept_timeout_ms、server_response_timeout_ms、dns_cache_timeout_sec。Auto 仅公开 timeout_ms(总预算配额)。
  • Redirects:切换开关并设置 followRedirects (0-20)。适用于 Single 和 Proxy。Browser 会自行跟随重定向。
  • Flags:适用于 Single、Proxy 和 Browser 的 unblocker(Browser 上的 unblocker 用于完成页面要求的检查);适用于 Single 和 Proxy 的 tryJsonData 与 returnBuffer。Auto 改为公开 forceProxy 和 returnSession。
  • Proxy:为 Single 或 Browser 选择特定 proxy ID,或为 Proxy 引擎设置 maxTries、Proxy 外部超时、exitCountries、exitClass 以及 ignoreProxies。Auto 还会公开 ignoreProxies。exitClass 下拉菜单有三种状态:未设置表示完全不发送该字段,standard 表示 request 绝不升级,premium 允许在标准池受阻时升级到 premium 出口。未设置与 standard 是不同的 request 语义,因此除非明确需要其中之一,否则请保持下拉菜单为空。Premium 需要包含 premium 出口的套餐:请参阅 exitClass。
  • Browser profile:os、browser 和 version 三个级联下拉菜单,列出 FourA 实际能够呈现的环境。它们在 Single 和 Proxy 模式下显示。留空则默认使用最新的 Chrome。每个选项都会缩小另外两个的范围,因此绝不会出现无效组合。该分区需要开启 unblocker:如果关闭,则不会发送任何浏览器 header,profile 只能生效一半,API 会直接拒绝该 request。
  • Browser:仅限浏览器的选项,例如 checkStatus 和 checkText。
  • Validate:status accept 和 status fail 接收逗号分隔的状态码 (validate.status),body accept 和 body fail 接收带有 | 分隔备选项的子字符串 (validate.data)。适用于 Single、Proxy 和 Auto。Browser 改为使用 checkStatus 和 checkText。表单中没有 header 规则的字段 (validate.headers)。

一旦运行返回了有效的 proxy,UI 选项卡末尾就会显示 Working proxies 部分。它最多列出 20 个 proxy ID(最新的排在前面),每个都带有其出口国家和时间。use 会将其填入 Single 或 Browser 的 proxy 字段(Proxy 引擎会自动查找),而 × 则会将其从列表中移除。

出口国家限定范围(Proxy 模式)

Proxy 上的 exitCountries 字段接受逗号分隔的两位目标可见国家代码列表(CZ, GB)。提交时会对值进行修剪、转为大写并去重。选择机制为严格的允许列表:出口未知的 proxy 将被排除,且 request 绝不会回退到其他国家。如果当前池中没有匹配项,response 将返回 code: "no_eligible_proxy",并在 details.exitCountries 中回显请求的范围。请保留该范围并在稍后重试。

当在限定范围下的 proxy 调用成功时,response 条带会在 proxy ID 旁边显示 exit <CODE>,以便你验证所提供的国家是否与请求相符。

工具栏重置

工具栏上的 Reset 按钮(位于 History 和 Saved 旁边)可将演练场恢复为初始状态。由于该操作具有破坏性,它会打开一个确认对话框,准确列出将被清除的内容:所有三个产品表单(Single、Proxy、Browser)、Cookie Jar 中保存的任何 cookie、任何携带的 proxy 以及当前 response。保存的预设和选定的 API key 将予以保留。点击 Reset everything 进行确认;任何其他操作都将取消。

发送与取消

点击 Send 发送 request。调用进行期间,右侧列会切换为带有加载微调器和 Cancel 按钮的加载状态。点击 Cancel(或在移动端再次点击该按钮)可中止操作。已取消的 request 会恢复空闲占位符并显示 "Request canceled.",而不是渲染错误。

request 完成(或失败)的瞬间,response 卡片就会切换为结果。Auto 运行可能比手动引擎耗时更长,因为针对冷目标的阶梯策略可能会逐级提升。

查看 Response

response 列镜像了 request 布局,并带有自己的选项卡:

Tab What it shows
Body 解析后的 body。根据返回内容在 JSON、HTML 和 Text 视图之间切换。
Headers response header,每行一个。
Cookies 目标返回的 cookie,包含解析视图(按 host 分组)和原始视图(Set-Cookie 文本)。解析视图在仅限 host 的 cookie 上显示 HO 徽标;domain cookie 则无标记。
Raw API 返回的完整 JSON 信封。

response 工具栏包含针对整个 response 的 Copy 和 Download 功能,以及用于搜索当前打开选项卡的 Find in response(Ctrl+K 或 Cmd+K),支持使用 Enter 和 Shift+Enter 逐步浏览匹配项。Body、Headers 和 Cookies 也有各自专用于该选项卡的 Copy 和 Download。

标签页上方的元信息栏显示上游 HTTP 状态、总耗时、处理调用的 proxy ID,以及(针对指定范围的 Proxy 调用)双字母 exit <CODE>。对于 Auto 运行,该栏还会显示由梯级策略中的哪一级返回了响应、进行了多少次子重试,以及消耗的积分。

调用详情说明

元信息栏下方的一行文字详细说明了页面的承载方式。对于 Auto 运行,它会指明具体的梯级(FourA 已为该主机建立的会话、普通 request、轮换 proxy、真实浏览器,或者先使用浏览器随后进行低成本重放)、是否通过了质询、尝试了多少次以及产生的费用。

当调用由于达到套餐限制而被拒绝时,该行会首先显示:“由您的套餐终止,而非目标网站终止”,随后说明触发了哪项限制(今日浏览器请求次数耗尽、并发请求过多、本周期积分已耗尽等),并附带指向 用量与限制 的链接。该行内容根据 API 返回的 X-FourA-Limit 代码生成,因此在复杂页面请求失败时,您可以明确知晓是被网站拦截还是因套餐受限。

跨运行传递参数

在任何返回了可复用会话数据的运行之后,响应工具栏上的 Carry 小控件会显示可用项:

  • Auto 运行提供完整的 session 三元组(proxy、cookies、userAgent)。
  • Browser 运行提供响应 userAgent,以及所使用的 proxy ID(如有)。
  • Proxy 运行提供返回的 proxy ID、轮换自动选择(非原本指定)的浏览器配置文件,以及处理该调用的 exitClass,以便直接回传高阶应答。

点击 Carry 即可一键选择各项参数的应用位置:userAgent 会转换为 Single 或 Proxy 上的 User-Agent header,proxy ID 会自动填入 Single 或 Browser 上的 proxy 字段。接收传递值的字段会显示“已修改”红点,方便查看更改内容。

传递的浏览器配置文件会自动填入 os、browser 和 version 这三个下拉选择框,并启用 unblocker,该规则与手动选择配置文件的处理方式一致。由于表单由三个下拉框构成而非单个 id 字段,因此仅在配置文件目录加载完成后才会提供此选项。

该配置文件用于表明成功执行的请求与您输入的请求并不一致:仅当 Proxy 切换到您未指定的浏览器系列时,才会报告 profile。如果不带此配置进行重放,将重复执行失败的版本。请参阅 为什么 Proxy 请求会耗尽重试次数。

展开至全屏

响应工具栏上的展开图标可将响应卡片从分栏布局切换为全屏浮层。当半宽列空间不足时,可将其用于查看层级较深的 JSON 树、冗长的 Set-Cookie 转储或较宽的 HTML 正文。浮层打开期间,页面本身会暂停滚动。再次点击该图标(或按 Escape 键)即可折叠收起。

curl 复现命令

在请求的 Raw 标签页中,JSON 下方的 curl 代码块展示了与你所构建请求完全等效的命令行内容,并配有 Copy curl 按钮。复制它可以从终端复现请求、与团队成员共享,或粘贴到缺陷报告中。

对于支持明文显示的密钥,代码段旁边的 Reveal key 按钮会直接将真实的明文密钥填入 curl,以便你可以直接复制运行。再次点击即可隐藏。旧版密钥(在此功能上线前创建)会保留 PASTE_PLAINTEXT_FOR_<key-name> 占位符;在 API Keys 页面重新生成密钥即可支持显示。

每次明文显示操作都会在服务器端记录审计日志,且明文密钥仅在当前页面会话的内存中保留。

保存预设

如果你需要反复配置同一个目标,可以将其保存。点击请求标签页行中的 Save,即可将当前配置保存为具名预设。

打开工具栏中的 Saved 查看你的预设。点击 Load 填充表单,或点击 Delete 删除预设。

从 FourA Chrome 扩展的 DevTools 标签页打开的请求,如果该扩展密钥存在于你的账户中,加载时会自动选中该密钥,页面也会提示此信息。否则页面会提示你选择一个密钥。未设置 unblocker 的重放请求会在开启该项的情况下运行,与 API 行为一致。

预设字段 存储内容
Name 简短标签(最多 100 个字符)
Description 可选备注(最多 500 个字符)
Endpoint 预设适用的引擎类型(auto / single / proxy / browser)
Config 完整的请求载荷,包括 UI 字段、header、cookie 和 body

预设作用域限定在你的用户账户内,不会与团队成员共享。

从历史记录重放

你运行的每次请求都会被记录。打开工具栏中的 History 查看最近 20 次运行记录,按时间倒序排列。

每行显示 endpoint、目标 URL、状态和时间。点击任意一行的 Replay 可将该请求重新加载到表单中,然后点击 Send 再次运行。

历史记录会自动按你的账户隔离:你只能看到自己的运行记录。

从活动记录打开

Activity Log 详情弹窗中包含一个 Open in Playground 按钮。点击后,Playground 会同时加载归档的请求和归档的响应。表单会根据存储的载荷自动填充,响应卡片会显示 API 当时返回的内容,并在 proxy 元数据栏上显示 "archived" 徽标("archived

在此基础上,你可以修改参数并点击 Send 针对线上 API 发起新请求,也可以仅检查归档载荷而不重新运行。载荷保留 24 小时,因此较早的 Activity 行将无法重新加载响应。

技巧

  • 在针对新目标编写代码之前,先在 Playground 中进行测试。开启 Auto 后,你可以在数秒内确定低成本的 fetch 是否足够,或者目标站点是否强制要求 browser 求解。
  • 对于有国家/地区限制的目标,先设置 exitCountries 运行一次 Proxy 调用,然后将返回的 proxy ID 传入 Browser 调用,以便 JavaScript 渲染通过相同的出口进行。
  • 为每个定期抓取的目标保存一个预设。重放保存的预设只需一次点击,而凭记忆重新构建 request 需要更长时间。
  • 使用 Cookies 标签页调试基于会话的抓取。原始 Set-Cookie 视图会精确显示目标发送的内容。
  • 当目标拒绝请求时,在尝试更重的引擎之前,先尝试在 Browser profile 选择中切换另一个条目。更换呈现的浏览器是免费的,而 browser 渲染不是。
  • Playground 请求会从你选择的 key 中计费。如果你希望保持生产用量清晰独立,请使用专用的低配额 key 进行日常探索。

相关内容

更新于: 2026年9月30日