Подключение к API и прокси для CAPTCHA — разные вещи

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

Поле proxy задачи указывает solvethree, какой прокси использовать для решения. Оно не настраивает соединение вашего приложения с API или соединение браузера с целевым сайтом. Это отдельные соединения.

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

Проследите путь запроса от вашего сервера до целевого сайта

Транспорт API и исходящий трафик к целевому ресурсу
Application server
  -> HTTPS api.solvethree.com/v1/tasks
     Authorization: Bearer <workspace API key>
     JSON: { "site": "accounts.example.com", "action": "login", "proxy": "http://USER:PASS@PROXY:PORT" }

solvethree solves through the proxy supplied in that JSON.

Application or browser
  -> the SAME successful proxy and pinned exit
  -> intended target, with the returned token/headers/cookie and browser identity

The API key belongs on the API request, never the target request.
Putting a proxy URL in task JSON does not configure the application's HTTP client.

Ваш сервер отправляет аутентифицированный HTTPS-запрос к API solvethree. URL прокси передаётся в теле JSON; затем solvethree использует этот прокси для решения. После этого ваше приложение или браузер отправляет отдельный запрос на целевой сайт. Ни поле задачи, ни вызов SDK не настраивают это последнее соединение автоматически.

Замените имя хоста, действие и учётные данные прокси из примера на свои значения. Для сайта нужен активный профиль, доступный вашему рабочему пространству; передача имени хоста не создаёт его. См. настройку профиля сайта.

Храните ключ API рабочего пространства на своём сервере. Отправляйте его заголовок авторизации Bearer только на хост API, в том числе при получении статуса задачи. Не копируйте этот заголовок в запрос к целевому сайту и не используйте его для аутентификации на прокси.

Используйте сработавший прокси и тот же выходной IP

Отдельно настройте HTTP-клиент или браузер, отправляющий решение. Используйте прокси, с которым задача была успешно решена, вместе с возвращёнными данными идентификации браузера userAgent и secChUa. Не сочетайте решение с посторонними данными идентификации браузера, прокси или целевым URL.

Одного и того же URL прокси недостаточно, если провайдер меняет выходной IP между соединениями. Используйте механизм сессий или закрепления IP у провайдера, чтобы решение и отправка на целевой сайт выполнялись с одного выходного IP. Пометка «резидентный» или «мобильный» не означает, что целевой сайт примет такой прокси.

Если вы используете proxyCandidates, отправляйте решение через прокси, который действительно сработал, а не через произвольную запись из списка. Кандидаты позволяют solvethree пробовать альтернативные выходы в сеть; они не настраивают ваш браузер и не гарантируют принятие решения.

Статус задачи ready означает, что решение доступно. Его принятие — отдельный результат: проверьте ответ целевого сайта на запрос, содержащий это решение.

Проверьте HTTP_PROXY, прежде чем менять задачу

Если ваш HTTP-клиент читает HTTP_PROXY или другие настройки прокси из окружения, проверьте, направляют ли они также запросы к api.solvethree.com. Из-за этого соединение с API может идти через прокси, предназначенный только для трафика к целевому сайту. Проверьте фактическую конфигурацию транспорта клиента, а не предполагайте, что она соответствует JSON задачи.

Настраивайте транспорт для API и целевого сайта отдельно. Настройка прокси в окружении не заменяет обязательное поле задачи: запрос reCAPTCHA по-прежнему должен содержать ровно одно из полей proxy или proxyCandidates.

Запрос к API завершается ошибкой до получения задачи.

Проверьте HTTP-ответ и маршрут, использованный вашим API-клиентом, включая настройки прокси в окружении.

Попробуйте: Обработайте HTTP-ошибку до чтения данных успешного ответа. Исправьте непреднамеренную маршрутизацию API, а не меняйте прокси задачи вслепую.

Вы получаете HTTP 407.

Определите, в каком соединении произошёл сбой аутентификации на прокси: в соединении с API или в соединении, использующем прокси задачи.

Попробуйте: Исправьте учётные данные этого прокси. Применяйте процентное кодирование к зарезервированным символам внутри компонентов имени пользователя и пароля, а не ко всему URL.

Истекает время ожидания создания задачи.

Истечение времени ожидания не доказывает, что API не создал задачу.

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

Задача переходит в статус failed.

Прочитайте её errorCode и error; это отличается от ошибки HTTP-транспорта.

Попробуйте: Прекратите опрос этой задачи и устраните указанную причину. Не повторяйте запрос с неизменёнными некорректными входными данными и не считайте, что причиной сбоя стал прокси соединения с API.

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

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

Создать рабочее пространство
Подключение к API и прокси для CAPTCHA — разные вещи · solvethree