Problème avec la soumission du formulaire de connexion à l'aide de Jsoup
Le problème avec le code fourni réside dans son incapacité à se connecter avec succès au site Web malgré l'utilisation correcte identifiants de connexion. Le code récupère actuellement la page de connexion mais ne parvient pas à exécuter une connexion réussie.
Le problème fondamental est que le processus de soumission nécessite des paramètres supplémentaires au-delà du nom d'utilisateur, du mot de passe et des cookies. Plus précisément, le site Web nécessite les valeurs "VIEWSTATE" et "EVENTVALIDATION".
Solution
Pour résoudre ce problème, ces valeurs supplémentaires doivent être récupérées à partir de la réponse du premier Requête GET et incluse dans la requête POST. Le code suivant montre comment obtenir et incorporer ces valeurs :
<code class="java">Document loginForm = Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/login.php") .method(Connection.Method.GET) .execute() .parse(); String viewState = loginForm.select("input[id=__VIEWSTATE]").first().attr("value"); String eventValidation = loginForm.select("input[id=__EVENTVALIDATION]").first().attr("value"); org.jsoup.nodes.Document 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>
De plus, il est recommandé de définir le champ userAgent dans les requêtes GET et POST pour garantir que vous recevez les mêmes réponses du serveur qu'avec un navigateur. .
Pour activer la fonctionnalité "Se souvenir de moi" lors de la connexion, intégrez la ligne suivante dans la requête POST :
<code class="java">.data("myLogin$myEnableAutoLogin", "on")</code>
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!