在 Insomnia 中测试 CAPTCHA API

作者:solvethree阅读需 1 分钟

使用 JSON 请求体创建任务,复制返回的任务 ID,然后获取该任务,直到其状态为 ready 或 failed。本次测试不需要响应串联。

本页内容

准备本地配置

你需要工作区 API 密钥、目标站点的有效配置和代理。发送任务前,请先设置站点配置:仅提供主机名和操作不会创建站点配置。

使用名为 solvethree-local 的私有本地环境,并设置以下变量。这些名称是本教程自行选定的,并非额外的 API 字段。不要将 API 密钥和代理凭据放入共享配置。

本地环境变量
本地环境变量
名称值
api_basehttps://api.solvethree.com/v1
api_key你的私有工作区 API 密钥。
site有效站点配置中设置的主机名,而非完整页面 URL。
action目标请求使用的 reCAPTCHA 操作。
proxy你的 HTTP 或 HTTPS 代理 URL,不含路径、查询参数或片段。
request_id此逻辑任务的标识符:由 1–64 个 ASCII 字母、数字、下划线或连字符组成。
task_id保持为空,直到创建响应返回任务 ID。

创建任务,然后复制其 ID

  1. 1.

    配置创建请求

    创建 POST 请求,地址为 api_base 后接 /tasks。添加查询参数 waitMs,值设为 0。选择 Bearer 身份验证,并将 api_key 作为令牌;请求必须发送使用 Bearer 方案的 Authorization 标头。

  2. 2.

    构建 JSON 请求体

    选择 JSON 请求体,包含 site、action、proxy 和 requestId。前三项使用对应的本地变量填充,requestId 使用 request_id 填充。proxy 和 proxyCandidates 必须且只能发送其中一项;本教程使用 proxy。不要添加 type 或 url。省略 recaptchaType 时会选择默认值 enterprise-v3。

  3. 3.

    发送并检查响应

    先检查 HTTP 响应,再将其作为成功的任务数据读取。如果创建成功,将返回的任务 ID 复制到 task_id。保留任务请求体和 request_id,以便需要时恢复请求。

  4. 4.

    获取该任务

    创建 GET 请求,地址为 api_base 后接 /tasks/ 和复制的任务 ID。将 waitMs 设为 15000,使用相同的 Bearer 密钥,并将请求体留空。手动复制 ID;本教程不依赖响应链式引用表达式。

Insomnia · 创建与获取请求
Create task
  Method: POST
  URL: https://api.solvethree.com/v1/tasks?waitMs=0
  Auth: Bearer Token — your private workspace key
  Body: JSON — site, action, proxy and a stable requestId

Retrieve task
  Method: GET
  URL: https://api.solvethree.com/v1/tasks/PASTE_RETURNED_ID?waitMs=15000
  Auth: Bearer Token — the same workspace key
  Body: none

Keep the task's proxy in the JSON body. Insomnia's own network proxy setting
controls its API connection, not the proxy used to generate/submit the solution.

决定如何处理响应

HTTP 请求返回非成功响应。

先检查 HTTP 错误,再尝试读取成功的任务数据。

试试这样做: 修正报告的请求或身份验证问题。不要反复提交未修改的无效输入,也不要认为所有错误都意味着余额不足。

任务状态为 pending 或 solving。

这两种状态均不包含可用的解题结果。

试试这样做: 使用相同的任务 ID 再次发送 GET 请求。不要仅因该任务尚未完成就创建另一个任务。

任务状态为 failed。

读取 errorCode 和 error;site-unreachable 是可能出现的任务错误之一。

试试这样做: 停止获取该任务,并在开始另一个任务前解决报告的问题。解题失败会退款。

创建请求超时,未返回 ID。

连接超时并不能证明创建失败。

试试这样做: 使用相同的 requestId 重新提交相同的任务请求体,以恢复现有任务。复用该 ID 时更改输入会导致冲突。

状态为 ready 的 reCAPTCHA 任务会提供令牌。向目标提交令牌时,请使用返回的 userAgent 和 secChUa,并使用与解题时相同的代理。就绪响应只确认已生成解题结果,并不表示你的应用请求已成功。

运行您的第一个任务。

使用 $5 工作区额度开始体验。

创建工作区
在 Insomnia 中测试 CAPTCHA API · solvethree