Когда ваша интеграция CAPTCHA возвращает неожиданные ошибки, проверка необработанного HTTP-трафика показывает, что на самом деле отправляется и принимается. Charles Proxy находится между вашим кодом и CaptchaAI, позволяя вам видеть каждый запрос, ответ и детали времени.
Настраивать
1. Установите прокси-сервер Чарльза.
Скачать сcharlesproxy.com. Доступно в Windows, macOS и Linux.
2. Включите SSL-прокси
CaptchaAI использует HTTPS. Чтобы проверить зашифрованный трафик:
- Прокси -> Настройки SSL-прокси -> Добавить
- Хост:
ocr.captchaai.com, Порт:443 - Справка -> SSL-проксирование -> Установить корневой сертификат Charles
- Доверяйте сертификату в хранилище сертификатов вашей ОС.
3. Настройте свой код для использования Чарльза
По умолчанию Чарльз работает на localhost:8888.
Питон:
import requests
proxies = {
"http": "http://localhost:8888",
"https": "http://localhost:8888",
}
# Disable SSL verification for Charles (development only)
resp = requests.post(
"https://ocr.captchaai.com/in.php",
data={"key": "YOUR_API_KEY", "method": "userrecaptcha", "json": "1"},
proxies=proxies,
verify=False,
)
Node.js:
const axios = require('axios');
const HttpsProxyAgent = require('https-proxy-agent');
const agent = new HttpsProxyAgent('http://localhost:8888');
const resp = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: { key: 'YOUR_API_KEY', method: 'userrecaptcha', json: 1 },
httpsAgent: agent,
});
Что проверять
Отправить запрос (POST /in.php)
В Чарльзе нажмите запрос на /in.php. Проверять:
| Вкладка | Что проверить |
|---|---|
| Запрос — Заголовки | Тип контента правильный |
| Запрос — Тело | Все необходимые параметры присутствуют |
| Ответ — Тело | {"status":1,"request":"TASK_ID"} об успехе |
| Время | Длительность запроса (должна быть <1 с) |
Общие проблемы, видимые у Чарльза:
- Отсутствует параметр
method->ERROR_BAD_PARAMETERS - Неверный тип контента — Параметры не анализируются
- Пустой
googlekey->ERROR_WRONG_GOOGLEKEY - Неверный формат тела JSON — Используйте данные формы, а не тело JSON.
Запрос на опрос (GET /res.php)
Проверьте запросы опроса:
- Параметры:
key,action=get,id=TASK_ID. - Ответ:
CAPCHA_NOT_READY(продолжить опрос) или{"status":1,"request":"TOKEN"}. - Время: за каждым опросом следует интервал сна.
Отладка распространенных проблем
Проблема: ERROR_WRONG_GOOGLEKEY.
В Charles посмотрите тело запроса на отправку. Найдите поле googlekey:
# What Charles shows:
key=YOUR_API_KEY&method=userrecaptcha&googlekey=&pageurl=https://example.com&json=1
^^^^^^^^ empty!
Исправлено: не удалось извлечь ключ сайта в восходящем направлении. Проверьте свой код извлечения.
Проблема: токен отклонен целевым сайтом
Сравните то, что вернул CaptchaAI, с тем, что вы вводите:
- В Charles найдите ответ
/res.phpс помощьюstatus: 1. - Скопируйте полный токен из поля
request. - Найдите последующий запрос на целевой сайт
- Убедитесь, что токен находится в теле формы как
g-recaptcha-response.
Проблема: истекло время выполнения запросов
Используйте представление Чарльза Последовательность, чтобы увидеть время:
POST /in.php → 234ms ✓
GET /res.php → 189ms (CAPCHA_NOT_READY)
GET /res.php → 201ms (CAPCHA_NOT_READY)
GET /res.php → 195ms (CAPCHA_NOT_READY)
... 23 more ...
GET /res.php → 188ms (CAPCHA_NOT_READY) ← never resolves
Если проблема не решена: проверьте правильность ключа сайта и URL-адреса страницы.
Функции Charles для отладки CAPTCHA
Повторить запрос
Щелкните правой кнопкой мыши любой запрос — Повторить, чтобы отправить его повторно. Полезно для тестирования запросов опроса без повторного запуска всего сценария.
Точки останова
Установите точку останова на /in.php, чтобы проверить и изменить запрос перед его отправкой:
- Прокси -> Настройки точки останова -> Добавить
- Хост:
ocr.captchaai.com, Путь:/in.php - Проверьте Запрос
- Теперь ваш код приостанавливается перед отправкой — вы можете редактировать параметры.
Карта Местная
Замените ответы API локальными файлами для тестирования:
- Инструменты -> Локальная карта -> Добавить
- Сопоставьте
https://ocr.captchaai.com/res.phpс локальным файлом JSON. - Создайте
mock_response.json:
{"status": 1, "request": "mock_token_for_testing"}
Это позволяет вам тестировать код передача токена во внутренний QA endpoint без использования кредитов API.
Дроссель
Имитировать медленные соединения:
- Прокси -> Настройки регулирования -> Включить
- Установите предустановленную скорость 3G или уровня EDGE.
- Проверьте, правильно ли ваш код обрабатывает медленные ответы и таймауты.
Альтернативы Чарльзу
| Инструмент | Платформа | HTTPS | Расходы |
|---|---|---|---|
| Чарльз Прокси | Win/Mac/Linux | Требуется установка сертификата | Платная (бесплатная пробная версия) |
| митмппрокси | Win/Mac/Linux | Требуется установка сертификата | Бесплатно |
| Скрипач | Окна | Встроенная расшифровка HTTPS | Бесплатно |
| Проксимен | macOS | Настройка HTTPS в один клик | Фримиум |
быстрая настройка mitmproxy
# Install
pip install mitmproxy
# Run
mitmproxy --listen-port 8080
# Configure Python
proxies = {"https": "http://localhost:8080"}
Поиск неисправностей
| Проблема | Причина | Исправить |
|---|---|---|
| Ошибки SSL в коде | Сертификат Чарльза не доверен | Установите корневой сертификат Charles; используйте verify=False для разработки |
| Запросов не видно | Код не использует прокси | Установите прокси в конфиге Requests/axios |
| Искаженный ответ HTTPS | SSL-прокси не включен | Добавьте ocr.captchaai.com в настройки SSL-прокси |
| Чарльз замедляет запросы | Точки останова включены | Отключайте точки останова, когда они не нужны |
Часто задаваемые вопросы
Должен ли я использовать Чарльза в производстве?
Нет. Charles — это инструмент разработки и отладки. Используйте структурированное журналирование и мониторинг для наблюдения за производством.
Влияет ли маршрутизация через Charles на решение CAPTCHA?
Нет. CaptchaAI не видит Чарльза в качестве прокси — ваши запросы проходят прозрачно.
Отладка и оптимизация интеграции CaptchaAI
Получите ключ API по адресуcaptchaai.com.
Связанные руководства
- Структурированное журналирование операций CAPTCHA
- Справочник кодов ошибок CaptchaAI
- Коллекция Postman для тестирования API CaptchaAI