实战教程

使用 Fiddler 检查 CaptchaAI API 流量

当验证码解决失败并且您的日志没有显示足够的详细信息时,拦截实际的 HTTP 流量可以揭示发生的情况。 Fiddler 捕获代码和 CaptchaAI API 之间的每个请求和响应,让您查看准确的负载、标头和时间。

何时使用 Fiddler 进行调试

设想 Fiddler 揭示了什么
API 返回错误,但您的代码日志很少 完整的请求正文、标头和响应
解决请求似乎挂起 请求是否到达服务器或超时
注入时令牌显示无效 确切的令牌内容和任何编码问题
与代理相关的故障 请求是否通过预期代理路由
速率限制问题 请求计时和 429 响应模式

为 HTTPS 流量设置 Fiddler

第1步:安装并配置HTTPS解密

Fiddler 充当拦截 HTTPS 流量的本地代理。您需要启用 HTTPS 解密才能查看 CaptchaAI API 负载:

到处都是提琴手:

  1. 打开设置 → HTTPS
  2. 启用“捕获 HTTPS 流量”
  3. 出现提示时安装 Fiddler 根证书
  4. 信任操作系统证书存储中的证书

Fiddler 经典(Windows):

  1. 工具 → 选项 → HTTPS
  2. 勾选“解密 HTTPS 流量”
  3. 点击“操作”→“信任根证书”

步骤 2:配置您的代码以使用 Fiddler 的代理

Fiddler 在 127.0.0.1:8866 (Fiddler Everywhere) 或 127.0.0.1:8888 (Fiddler Classic) 上收听。

Python(请求):

import requests

proxies = {
    "http": "http://127.0.0.1:8866",
    "https": "http://127.0.0.1:8866",
}

# Submit CAPTCHA task through Fiddler
response = requests.post(
    "https://ocr.captchaai.com/in.php",
    data={
        "key": "YOUR_API_KEY",
        "method": "userrecaptcha",
        "googlekey": "SITE_KEY",
        "pageurl": "https://example.com",
        "json": 1,
    },
    proxies=proxies,
    verify=False,  # Required for Fiddler's self-signed cert
)
print(response.json())

JavaScript(带有 axios 的 Node.js):

const axios = require("axios");
const HttpsProxyAgent = require("https-proxy-agent");

const agent = new HttpsProxyAgent("http://127.0.0.1:8866");

async function submitTask() {
  const response = await axios.post(
    "https://ocr.captchaai.com/in.php",
    new URLSearchParams({
      key: "YOUR_API_KEY",
      method: "userrecaptcha",
      googlekey: "SITE_KEY",
      pageurl: "https://example.com",
      json: 1,
    }),
    {
      httpsAgent: agent,
      proxy: false, // Disable axios default proxy handling
    }
  );
  console.log(response.data);
}

submitTask();

注意: verify=False (Python) 禁用 Fiddler 拦截证书的 SSL 验证。仅在调试期间使用它 - 在生产中将其删除。

过滤 CaptchaAI 流量

添加过滤器以仅查看繁忙会话中的 CaptchaAI 请求。

Fiddler 无处不在的过滤器

  1. 单击过滤器选项卡
  2. 添加规则:主机containsocr.captchaai.com
  3. 应用过滤器

Fiddler 经典过滤器

  1. 单击过滤器选项卡
  2. 勾选“使用过滤器”
  3. 在“主机”下,选择“仅显示以下主机”
  4. 输入:ocr.captchaai.com

现在会话列表中仅显示 CaptchaAI API 请求。

检查请求和响应

提交请求(in.php)

当您捕获任务提交时,请在 Fiddler 中检查这些字段:

控制板 检查什么
标题 内容类型应为 application/x-www-form-urlencoded
请求正文 验证 keymethodgooglekey/res.php、pageurl 是否正确
响应正文 成功时应返回 {"status":1,"request":"TASK_ID"}
响应代码 200 = 正常,403 = 关键问题,429 = 速率受限

投票请求 (res.php)

轮询结果时:

控制板 检查什么
请求正文 keyaction=getid=TASK_IDjson=1
响应正文 CAPCHA_NOT_READY 处理时,{"status":1,"request":"TOKEN"} 成功
定时 检查轮询之间的间隔 - 应为 5 秒以上

Fiddler 中常见的问题

你所看到的 意义
请求正文为空 googlekey 上游站点密钥提取失败
响应:{"status":0,"request":"ERROR_WRONG_USER_KEY"} API 密钥无效
响应:{"status":0,"request":"ERROR_ZERO_BALANCE"} 账户没有资金
响应:{"status":0,"request":"ERROR_NO_SLOT_AVAILABLE"} 服务器繁忙 – 重试
无响应(超时) Network/proxy 阻止连接
429 状态码 请求太多——减慢轮询速度

使用断点

断点会在请求发送之前暂停请求,以便您修改它们:

设置断点

到处都是提琴手:

  1. 规则 → 添加规则
  2. 匹配:URL 包含 ocr.captchaai.com/in.php
  3. 操作:“发送前暂停”

提琴手经典:

  1. 规则 → 自动断点 → 请求之前
  2. 或者在 QuickExec 栏中输入 bpu ocr.captchaai.com

在断点处做什么

当请求暂停时:

  1. 检查请求正文 – 验证所有参数是否正确
  2. 编辑参数 – 更改 methodgooglekeypageurl 以测试不同的值
  3. 恢复 – 单击“运行至完成”发送修改后的请求
  4. 检查响应 – 查看您的更改是否解决了问题

这对于在不更改代码的情况下测试参数值是否导致故障非常有用。

重放失败的请求

当请求失败时,您可以从 Fiddler 重放它:

  1. 右键单击失败的会话
  2. 选择 重播重新发出请求
  3. 使用相同的标头和正文再次发送相同的请求

修改后重播:

  1. 右键单击 → 在 Composer 中编辑
  2. 修改参数
  3. 单击执行

这使您可以在不重新启动应用程序的情况下测试修复。

编写测试请求

使用 Fiddler 的 Composer 从头开始​​构建 CaptchaAI 请求:

任务提交:

POST https://ocr.captchaai.com/in.php
Content-Type: application/x-www-form-urlencoded

key=YOUR_API_KEY&method=userrecaptcha&googlekey=SITE_KEY&pageurl=https://example.com&json=1

投票结果:

GET https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=TASK_ID&json=1

当您只想验证 API 是否正常工作时,这比编写代码更快。

分析时序

Fiddler 的时间轴视图显示请求持续时间:

公制 健康价值 问题指示器
DNS查询 < 50 毫秒 > 500ms = DNS 问题
TCP连接 <100毫秒 > 1000ms = 网络问题
TLS 握手 <200毫秒 > 1000ms = 证书颁发
服务器响应(in.php) < 500 毫秒 > 2000ms = 服务器拥塞
服务器响应(res.php) <200毫秒 > 1000ms = 异常 - 检查状态

导出会话以获取支持

如果您需要与 CaptchaAI 支持共享调试数据:

  1. 在Fiddler中选择相关会话
  2. 文件 → 导出会话 → 选定的会话
  3. 选择 HTTPArchive (.har) 格式
  4. 在共享之前从导出的文件中删除您的 API 密钥
Find and replace your actual API key with "REDACTED" in the .har file

故障排除

问题 原因 处理方式
Fiddler显示没有流量 代码不通过 Fiddler 的代理路由 将代理设置为 127.0.0.1:8866(无处不在)或 8888(经典)
SSL 证书错误 Fiddler 的根证书不受信任 重新安装Fiddler证书;添加到受信任的根
Fiddler 显示乱码响应正文 响应被压缩 启用工具栏中的“解码”按钮(或规则 → 删除所有编码)
断点不触发 过滤器或规则不匹配 验证 URL 模式与 ocr.captchaai.com 完全匹配
交通出现但车身空空如也 内容长度不匹配或流响应 单击会话并等待加载完整响应

常问问题

使用 Fiddler 会影响验证码解决时间吗?

至少。由于代理跃点,Fiddler 会为每个请求增加约 1-5 毫秒的延迟。与 CAPTCHA 解决时间(10-60 秒)相比,这是可以忽略不计的。对于时间关键型调试,请注意 Fiddler 的时间戳反映的是 Fiddler 接收数据的时间,而不是代码发送数据的时间。

我可以使用 Fiddler 进行基于浏览器的验证码解决吗?

是的。配置您的浏览器以使用 Fiddler 作为其代理,您将看到所有与 CAPTCHA 相关的请求 - 包括小部件加载、质询检索和令牌提交。这对于了解完整的 CAPTCHA 生命周期非常有用。

我应该使用 Fiddler Classic 还是 Fiddler Everywhere?

Fiddler Everywhere 是跨平台的(Windows、macOS、Linux),具有现代 UI。 Fiddler Classic 仅适用于 Windows,但具有更高级的脚本功能 (FiddlerScript)。对于基本的 CaptchaAI 调试,两者都有效。

相关文章

下一步

清晰的 API 错误消息使调试速度更快 –”以 CaptchaAI 开头当您需要更深入的请求级别检查时,请使用 Fiddler。

相关指南:

该文章已禁用评论。