"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment surmonter les problèmes d'authentification lors de la soumission de formulaires de connexion avec Jsoup

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

Publié le 2024-11-07
Parcourir:875

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 :

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");

Incorporez ces valeurs dans la requête POST suivante :

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();

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

Améliorations

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

.data("myLogin$myEnableAutoLogin", "on")
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729401436. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3