Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man Probleme bei der Übermittlung von Anmeldeformularen mit Jsoup lösen, indem man die Werte VIEWSTATE und EVENTVALIDATION einbezieht?

Wie kann man Probleme bei der Übermittlung von Anmeldeformularen mit Jsoup lösen, indem man die Werte VIEWSTATE und EVENTVALIDATION einbezieht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-20 13:34:02932Durchsuche

How to Resolve Login Form Submission Issues with Jsoup by Incorporating VIEWSTATE and EVENTVALIDATION Values?

Beheben von Problemen bei der Übermittlung von Anmeldeformularen mit Jsoup

Obwohl die korrekten Anmeldeinformationen übermittelt wurden, kann der bereitgestellte Code Benutzer nicht authentifizieren und zeigt die Anmeldeseite an. weist auf mögliche Implementierungsprobleme hin.

Ein wesentlicher Aspekt, der im Code fehlt, ist die Einbeziehung der Werte VIEWSTATE und EVENTVALIDATION. Diese Werte werden von der Website für die Anmeldung benötigt und können aus der Antwort der ersten GET-Anfrage abgerufen werden:

<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>

Die Einbeziehung dieser Werte in die POST-Anfrage zusammen mit dem Benutzernamen und dem Passwort stellt eine erfolgreiche Anmeldung sicher:

<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>

Darüber hinaus simuliert das Hinzufügen des userAgent-Felds zu GET- und POST-Anfragen einen Browser und stellt die Konsistenz mit der bei einer manuellen Anmeldung erhaltenen Antwort sicher.

Optional kann das Feld „Angemeldet bleiben“ aktiviert werden Fügen Sie der POST-Anfrage die folgende Zeile hinzu:

<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>

Das obige ist der detaillierte Inhalt vonWie kann man Probleme bei der Übermittlung von Anmeldeformularen mit Jsoup lösen, indem man die Werte VIEWSTATE und EVENTVALIDATION einbezieht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn