Herausforderungen beim Senden von Anmeldeformularen mit Jsoup
Trotz der Eingabe gültiger Anmeldeinformationen kann es beim Zugriff auf eine Website mit dem bereitgestellten Code zu Schwierigkeiten kommen. Bei der Ausführung schlägt die Authentifizierung des Codes fehl, was auf ein potenzielles Problem hinweist.
Ein mögliches Versehen betrifft die Anforderung zusätzlicher Werte über Benutzername, Passwort und Cookies hinaus. Insbesondere erfordert die Site die Einbindung von VIEWSTATE und EVENTVALIDATION.
Um dieses Problem zu beheben, rufen Sie diese Werte aus der Antwort der ersten GET-Anfrage ab:
<code class="java">Document doc = loginForm.parse(); Element e = doc.select("input[id=__VIEWSTATE]").first(); String viewState = e.attr("value"); e = doc.select("input[id=__EVENTVALIDATION]").first(); String eventValidation = e.attr("value");</code>
Integrieren Sie diese Werte in den nachfolgenden POST Anfrage:
<code class="java">org.jsoup.nodes.Document document = (org.jsoup.nodes.Document) Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/authentication.php").userAgent("Mozilla/5.0") .data("myLogin$myUsername", "MyUsername") .data("myLogin$myPassword, "MyPassword") .data("myLogin$myLoginButton.x", "22") .data("myLogin$myLoginButton.y", "8") .data("__VIEWSTATE", viewState) .data("__EVENTVALIDATION", eventValidation) .cookies(loginForm.cookies()) .post();</code>
Fügen Sie das Feld „userAgent“ ein, um die Kompatibilität mit dem browserspezifischen Rendering der Website sicherzustellen.
Verbesserungen
Um die Funktion „Erinnern“ zu aktivieren „Me“-Funktion beim Login:
<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
Das obige ist der detaillierte Inhalt vonSo überwinden Sie Authentifizierungsprobleme beim Senden von Anmeldeformularen mit Jsoup. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!