Туториалы

Использование Fiddler для проверки трафика API CaptchaAI

Когда решение CAPTCHA терпит неудачу и ваши журналы не содержат достаточно подробностей, перехват фактического HTTP-трафика показывает, что происходит. Fiddler фиксирует каждый запрос и ответ между вашим кодом и API CaptchaAI, позволяя вам видеть точные полезные данные, заголовки и время.

Когда использовать Fiddler для отладки

Сценарий Что раскрывает Скрипач
API возвращает ошибки, но ваши журналы кода скудны Полное тело запроса, заголовки и ответ.
Запросы на решение, кажется, зависают Доходят ли запросы до сервера или истекает время ожидания
Токен кажется недействительным при внедрении Точное содержимое токена и любые проблемы с кодировкой.
Сбои, связанные с прокси Проходят ли запросы через ожидаемый прокси-сервер
Проблемы с ограничением скорости Время запроса и шаблоны ответа 429

Настройка Fiddler для HTTPS-трафика

Шаг 1. Установите и настройте расшифровку HTTPS

Fiddler действует как локальный прокси-сервер, перехватывающий HTTPS-трафик. Вам необходимо включить расшифровку HTTPS, чтобы увидеть полезные данные API CaptchaAI:

Скрипач повсюду:

  1. Откройте «Настройки» — HTTPS.
  2. Включите «Захват HTTPS-трафика».
  3. Установите корневой сертификат Fiddler при появлении соответствующего запроса.
  4. Доверяйте сертификату в хранилище сертификатов вашей ОС.

Fiddler Classic (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 (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) отключает проверку SSL для перехватывающего сертификата Fiddler. Используйте это только во время отладки — удалите его в рабочей среде.

Фильтрация трафика CaptchaAI

Добавьте фильтры, чтобы видеть только запросы CaptchaAI в занятом сеансе.

Фильтры Fiddler Everywhere

  1. Откройте вкладку Фильтры.
  2. Добавьте правило: Хостcontainsocr.captchaai.com.
  3. Применить фильтр

Классические фильтры Fiddler

  1. Откройте вкладку Фильтры.
  2. Установите флажок «Использовать фильтры».
  3. В разделе «Хосты» выберите «Показать только следующие хосты».
  4. Введите: ocr.captchaai.com

Теперь в списке сессий отображаются только запросы API CaptchaAI.

Проверка запроса и ответа

Отправить запрос (in.php)

При захвате отправки задачи проверьте эти поля в Fiddler:

Панель Что проверить
Заголовки Тип контента должен быть application/x-www-form-urlencoded.
Тело запроса Убедитесь, что key, method, googlekey/PLACEHOLDER_TOKEN3ZZ, pageurl верны.
Тело ответа Должен вернуть {"status":1,"request":"TASK_ID"} в случае успеха
Код ответа 200 = ОК, 403 = ключевая проблема, 429 = ставка ограничена

Запрос на опрос (res.php)

При опросе результатов:

Панель Что проверить
Тело запроса key, action=get, id=TASK_ID, json=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. Или введите bpu ocr.captchaai.com на панели QuickExec.

Что делать в точке останова

Когда запрос приостановлен:

  1. Проверьте тело запроса — убедитесь, что все параметры верны.
  2. Изменить параметры — измените method, googlekey или pageurl, чтобы проверить разные значения.
  3. Возобновить — нажмите «Выполнить до завершения», чтобы отправить измененный запрос.
  4. Проверьте ответ – узнайте, устранило ли ваше изменение проблему.

Это полезно для проверки того, вызывает ли значение параметра сбои без изменения кода.

Воспроизведение неудачных запросов

Если запрос не выполнен, вы можете воспроизвести его из Fiddler:

  1. Щелкните правой кнопкой мыши неудачный сеанс.
  2. Выберите Повторить -> Запросы на повторную отправку.
  3. Тот же запрос отправляется снова с идентичными заголовками и телом.

Чтобы воспроизвести с изменениями:

  1. Щелкните правой кнопкой мыши — Редактировать в Composer.
  2. Измените параметры
  3. Нажмите Выполнить.

Это позволяет тестировать исправления без перезапуска приложения.

Составление тестовых запросов

Используйте Fiddler's 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 мс > 500 мс = проблема с DNS
TCP-соединение < 100 мс > 1000 мс = проблема с сетью
TLS-рукопожатие < 200 мс > 1000 мс = проблема с сертификатом
Ответ сервера (in.php) < 500 мс > 2000 мс = перегрузка сервера
Ответ сервера (res.php) < 200 мс > 1000 мс = необычно — проверьте статус

Экспорт сеансов для поддержки

Если вам нужно поделиться отладочными данными с поддержкой CaptchaAI:

  1. Выберите соответствующие сеансы в Fiddler.
  2. Файл → Экспорт сеансов → Выбранные сеансы.
  3. Выберите формат HTTPArchive (.har).
  4. Удалите ключ API из экспортированного файла перед отправкой.
Find and replace your actual API key with "REDACTED" in the .har file

Поиск неисправностей

| Проблема | Причина | Исправить |


Следующие шаги

  • CaptchaAI Quickstart: ваше первое решение CAPTCHA за 5 минут
  • Как решить reCAPTCHA v2 через API: пошаговое руководство
  • Как решить Cloudflare Turnstile через API
  • Как решить GeeTest v3 с помощью API
Комментарии для этой статьи отключены.