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

Mary-Kate Olsen
Freigeben: 2024-10-20 13:34:02
Original
1010 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage