Тестирование CAPTCHA API в Insomnia

Автор: solvethree3 мин на чтение

Создайте задачу с телом JSON, скопируйте полученный ID задачи, затем получайте эту задачу, пока её статус не станет ready или failed. Для этого теста не нужно связывать запросы через ответы.

На этой странице

Подготовьте локальную конфигурацию

Вам понадобятся API-ключ рабочего пространства, активный профиль целевого сайта и прокси. Настройте профиль сайта перед отправкой задачи: указание имени хоста и действия не создаёт профиль.

Используйте приватное локальное окружение с именем solvethree-local и перечисленными ниже переменными. Эти имена выбраны для данного руководства и не являются дополнительными полями API. Не включайте API-ключ и учётные данные прокси в общие конфигурации.

Переменные локального окружения
Переменные локального окружения
НазваниеЗначение
api_basehttps://api.solvethree.com/v1
api_keyВаш приватный API-ключ рабочего пространства.
siteИмя хоста, настроенное в активном профиле сайта, а не полный URL страницы.
actionДействие reCAPTCHA, используемое в запросе к целевому сайту.
proxyURL вашего HTTP- или HTTPS-прокси без пути, строки запроса и фрагмента.
request_idИдентификатор этой логической задачи: 1–64 буквы ASCII, цифры, символы подчёркивания или дефисы.
task_idОставьте пустым, пока ответ на запрос создания не вернёт ID задачи.

Создайте задачу и скопируйте её ID

  1. 1.

    Настройка запроса создания

    Создайте POST-запрос, добавив /tasks к api_base. Добавьте параметр запроса waitMs со значением 0. Выберите аутентификацию Bearer и укажите api_key в качестве токена; запрос должен отправлять заголовок Authorization со схемой Bearer.

  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.

Ни один из этих статусов не содержит готового к использованию решения.

Попробуйте: Повторно отправьте GET-запрос с тем же ID задачи. Не создавайте другую задачу только потому, что эта ещё не завершена.

Задача имеет статус failed.

Прочитайте errorCode и error; site-unreachable — одна из возможных ошибок задачи.

Попробуйте: Прекратите запрашивать эту задачу и устраните указанную причину, прежде чем создавать новую. Средства за неудачные решения возвращаются.

Время ожидания запроса создания истекло, ID не получен.

Тайм-аут соединения не доказывает, что задача не была создана.

Попробуйте: Повторно отправьте то же тело задачи с тем же requestId, чтобы восстановить существующую задачу. Изменение входных данных при повторном использовании этого ID вызывает конфликт.

Задача reCAPTCHA со статусом ready предоставляет токен. Если вы отправляете его целевому сайту, используйте возвращённые userAgent и secChUa с тем же прокси, который использовался для решения. Ответ со статусом ready подтверждает, что решение сгенерировано, а не то, что запрос вашего приложения выполнен успешно.

Запустите первую задачу.

Начните с $5 на балансе рабочего пространства.

Создать рабочее пространство
Тестирование CAPTCHA API в Insomnia · solvethree