API-Verbindung und CAPTCHA-Proxy sind nicht dasselbe

Von solvethree3 Min. Lesezeit

Das Feld proxy der Aufgabe teilt solvethree mit, welcher Proxy für den Lösungsvorgang verwendet werden soll. Es konfiguriert weder die Verbindung Ihrer Anwendung zur API noch die Verbindung Ihres Browsers zum Ziel. Dies sind separate Verbindungen.

Auf dieser Seite

Den Weg der Anfrage vom Server zum Ziel nachvollziehen

API-Transport und ausgehender Datenverkehr zum Ziel
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.

Ihr Server sendet eine authentifizierte HTTPS-Anfrage an die solvethree-API. Die Proxy-URL wird im JSON-Body übertragen; solvethree verwendet diesen Proxy dann für den Lösungsvorgang. Anschließend stellt Ihre Anwendung oder Ihr Browser eine separate Anfrage an das Ziel. Weder das Aufgabenfeld noch ein SDK-Aufruf konfiguriert diese letzte Verbindung automatisch.

Ersetzen Sie den Beispielhostnamen, die Beispielaktion und die Proxy-Zugangsdaten durch Ihre eigenen Werte. Die Website benötigt ein aktives Profil, das Ihrem Workspace zur Verfügung steht; durch das Senden ihres Hostnamens wird keines erstellt. Siehe Website-Profil einrichten.

Bewahren Sie den API-Schlüssel des Workspaces auf Ihrem Server auf. Senden Sie dessen Bearer-Autorisierungsheader nur an den API-Host, auch beim Abrufen des Aufgabenstatus. Kopieren Sie diesen Header nicht in die Zielanfrage und verwenden Sie ihn nicht zur Proxy-Authentifizierung.

Den erfolgreichen Proxy und dieselbe Ausgangs-IP verwenden

Konfigurieren Sie den HTTP-Client oder Browser, der die Lösung übermittelt, separat. Verwenden Sie den erfolgreichen Proxy zusammen mit der zurückgegebenen Browseridentität aus userAgent und secChUa. Kombinieren Sie die Lösung nicht mit einer nicht zugehörigen Browseridentität, einem anderen Proxy oder einer anderen Ziel-URL.

Dieselbe Proxy-URL reicht nicht aus, wenn der Anbieter seine Ausgangs-IP zwischen Verbindungen wechselt. Nutzen Sie die Sitzungs- oder Pinning-Funktion des Anbieters, damit Lösungsvorgang und Übermittlung an das Ziel dieselbe Ausgangs-IP verwenden. Die Bezeichnung als Residential- oder Mobile-Proxy belegt nicht, dass das Ziel ihn akzeptiert.

Wenn Sie proxyCandidates verwenden, übermitteln Sie die Lösung über den tatsächlich erfolgreichen Proxy, nicht über einen beliebigen Listeneintrag. Kandidaten ermöglichen solvethree, alternative Ausgangsverbindungen zu versuchen; sie konfigurieren weder Ihren Browser noch garantieren sie die Akzeptanz.

Eine Aufgabe mit Status ready bedeutet, dass eine Lösung verfügbar ist. Ob sie akzeptiert wird, ist ein separates Ergebnis: Prüfen Sie die Antwort des Ziels auf die Anfrage, die diese Lösung enthält.

HTTP_PROXY prüfen, bevor Sie die Aufgabe ändern

Wenn Ihr HTTP-Client HTTP_PROXY oder andere Proxy-Umgebungseinstellungen ausliest, prüfen Sie, ob diese Einstellungen auch Anfragen an api.solvethree.com umleiten. Dadurch kann die API-Verbindung über einen Proxy laufen, den Sie nur für den Datenverkehr zum Ziel vorgesehen haben. Prüfen Sie die tatsächlich verwendete Transportkonfiguration des Clients, statt anzunehmen, dass sie dem Aufgaben-JSON entspricht.

Konfigurieren Sie den API-Transport und den Transport zum Ziel separat. Eine Proxy-Umgebungseinstellung ersetzt nicht das erforderliche Aufgabenfeld: Eine reCAPTCHA-Anfrage benötigt weiterhin genau eines der Felder proxy oder proxyCandidates.

Die API-Anfrage schlägt fehl, bevor Sie eine Aufgabe erhalten.

Prüfen Sie die HTTP-Antwort und den von Ihrem API-Client verwendeten Verbindungsweg einschließlich aller Proxy-Umgebungseinstellungen.

Probiere Folgendes: Behandeln Sie den HTTP-Fehler, bevor Sie eine Erfolgsantwort auslesen. Korrigieren Sie die unbeabsichtigte API-Weiterleitung, statt den Aufgaben-Proxy auf Verdacht zu ändern.

Sie erhalten HTTP 407.

Ermitteln Sie, bei welcher Verbindung die Proxy-Authentifizierung fehlgeschlagen ist: bei der API-Verbindung oder bei einer Verbindung über den Aufgaben-Proxy.

Probiere Folgendes: Korrigieren Sie die Zugangsdaten dieses Proxys. Kodieren Sie reservierte Zeichen innerhalb der Benutzernamen- und Passwortkomponenten per Prozentkodierung, nicht die gesamte URL.

Bei der Aufgabenerstellung tritt eine Zeitüberschreitung auf.

Eine Zeitüberschreitung beweist nicht, dass die API die Aufgabe nicht erstellt hat.

Probiere Folgendes: Rufen Sie die Aufgabe ab, wenn Sie ihre ID haben. Falls Sie eine requestId angegeben haben, stellen Sie die Aufgabe wieder her, indem Sie dieselbe Aufgabenanfrage mit dieser ID wiederholen, bevor Sie eine neue logische Aufgabe erstellen.

Die Aufgabe erreicht den Status failed.

Lesen Sie errorCode und error; dies unterscheidet sich von einem HTTP-Transportfehler.

Probiere Folgendes: Beenden Sie das Polling dieser Aufgabe und beheben Sie die gemeldete Ursache. Wiederholen Sie keine unveränderten ungültigen Eingaben und nehmen Sie nicht an, dass der Proxy der API-Verbindung den Fehler verursacht hat.

Führe deinen ersten Task aus.

Starte mit $5 Workspace-Guthaben.

Workspace erstellen
API-Verbindung und CAPTCHA-Proxy sind nicht dasselbe · solvethree