Comment surmonter les problèmes d'authentification lors de la soumission de formulaires de connexion avec Jsoup

DDD
Libérer: 2024-10-20 13:18:30
original
565 Les gens l'ont consulté

How to Overcome Authentication Issues While Submitting Login Forms with Jsoup

Défis rencontrés lors de la soumission des formulaires de connexion avec Jsoup

Malgré la saisie d'informations de connexion valides, vous pouvez rencontrer des difficultés pour accéder à un site à l'aide du code fourni. Lors de l'exécution, le code ne parvient pas à s'authentifier, ce qui indique un problème potentiel.

Un oubli possible concerne l'exigence de valeurs supplémentaires au-delà du nom d'utilisateur, du mot de passe et des cookies. Plus précisément, le site nécessite l'inclusion de VIEWSTATE et EVENTVALIDATION.

Pour résoudre ce problème, récupérez ces valeurs à partir de la réponse de la requête GET initiale :

<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>
Copier après la connexion

Incorporez ces valeurs dans le POST suivant. request :

<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>
Copier après la connexion

Inclure le champ userAgent pour assurer la compatibilité avec le rendu spécifique au navigateur du site.

Améliorations

Pour activer le "souvenir "moi" lors de la connexion :

<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal