CaptchaAI принимает запросы как в формате с кодировкой, так и в формате JSON. Оба работают одинаково — выбирайте в зависимости от вашего языка и предпочтений.
Параллельное сравнение
Закодировано в форме (по умолчанию)
import requests
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
Тип контента: application/x-www-form-urlencoded
JSON
import requests
resp = requests.post("https://ocr.captchaai.com/in.php", json={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
Тип контента: application/json
Ключевые различия
| Фактор | Закодированный в форме | JSON |
|---|---|---|
| Тип контента | application/x-www-form-urlencoded |
application/json |
| Структура данных | Плоские пары ключ-значение | Возможны вложенные объекты |
| Двоичные данные | Используйте multipart для загрузки файлов | Кодировка Base64 в поле тела |
| Поддержка массивов | Ограниченный | Родной |
| Ключевое слово Python | data={} |
json={} |
| Node.js | URLSearchParams |
JSON.stringify() |
| Читабельность | Просто для плоских параметров | подходящий для сложных данных |
| Совместимость | Работает везде | Работает везде |
Формат ответа
Добавьте json=1, чтобы получать ответы в формате JSON независимо от формата запроса:
# Without json=1 — plain text response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
})
# Response: "OK|12345678"
# With json=1 — JSON response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
# Response: {"status": 1, "request": "12345678"}
Всегда используйте json=1 для облегчения анализа.
Примеры Python
Закодированный в форме
import requests
# Submit
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
task_id = resp.json()["request"]
# Poll (always GET with query params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": task_id,
"json": 1,
})
Тело JSON
import requests
# Submit with JSON
resp = requests.post("https://ocr.captchaai.com/in.php", json={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
task_id = resp.json()["request"]
# Poll (same as form-encoded — GET with params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": task_id,
"json": 1,
})
Примеры Node.js
Закодированный в форме
const axios = require('axios');
const qs = require('querystring');
// Submit
const resp = await axios.post(
'https://ocr.captchaai.com/in.php',
qs.stringify({
key: 'YOUR_API_KEY',
method: 'userrecaptcha',
googlekey: 'SITE_KEY',
pageurl: 'https://example.com',
json: 1,
})
);
const taskId = resp.data.request;
Тело JSON
const axios = require('axios');
// Submit with JSON
const resp = await axios.post(
'https://ocr.captchaai.com/in.php',
{
key: 'YOUR_API_KEY',
method: 'userrecaptcha',
googlekey: 'SITE_KEY',
pageurl: 'https://example.com',
json: 1,
}
);
const taskId = resp.data.request;
CAPTCHA изображения: форма против JSON
Для изображений CAPTCHA формат имеет большее значение:
Форма с загрузкой файла (многочастная)
# File upload — form-encoded with multipart
resp = requests.post("https://ocr.captchaai.com/in.php",
data={
"key": "YOUR_API_KEY",
"method": "post",
"json": 1,
},
files={
"file": open("captcha.png", "rb"),
},
)
JSON с Base64
import base64
# Base64 in JSON body
with open("captcha.png", "rb") as f:
body = base64.b64encode(f.read()).decode()
resp = requests.post("https://ocr.captchaai.com/in.php", json={
"key": "YOUR_API_KEY",
"method": "base64",
"body": body,
"json": 1,
})
Форма с Base64
# Base64 in form data
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "base64",
"body": body,
"json": 1,
})
Когда использовать какой
| Сценарий | Рекомендуется | Почему |
|---|---|---|
| Простые скрипты | Закодированный в форме | Проще, меньше зависимостей |
| Интеграция REST API | JSON | Соответствует типичным шаблонам API |
| Загрузка файлов | Многочастная форма | Прямая двоичная загрузка |
| Большие изображения в формате Base64 | Закодированный в форме | подходящий управление большими полезными нагрузками |
| ТипScript/modern JS | JSON | Поддержка встроенных объектов |
| Интеграция устаревших систем | Закодированный в форме | Универсальная совместимость |
| Переход с 2Captcha | Закодированный в форме | Тот же формат, что и 2Captcha. |
Распространенные ошибки
| Ошибка | Проблема | Исправить |
|---|---|---|
Использование json={}, но без json: 1 в данных |
Ответ представляет собой обычный текст | Включить "json": 1 в данные |
Смешивание data= и json= в запросах Python |
Запрос имеет неверный формат | Используйте тот или иной |
| Забыть заголовок Content-Type | Сервер не может разобрать тело | Пусть ваша HTTP-библиотека установит это автоматически |
| Отправка тела JSON в конечную точку опроса | Опрос использует параметры GET | Всегда используйте GET с параметрами запроса для /res.php. |
Часто задаваемые вопросы
Влияет ли формат на скорость и точность решения?
Нет. Оба формата дают одинаковые результаты. Сервер обрабатывает их одинаково.
Могу ли я смешивать форматы в одном проекте?
Да. Вы можете отправлять данные в формате JSON и опрашивать их с помощью параметров запроса (именно так всегда работает опрос). Каждый запрос независим.
Какой формат используется API, совместимым с 2Captcha?
Исходный API 2Captcha использует кодировку формы. CaptchaAI добавляет поддержку JSON сверху. Если вы переходите с 2Captcha, придерживайтесь кодировки формы.
Связанные руководства
Выберите удобный формат —попробуйте CaptchaAI APIсегодня.