À partir d'un script, je souhaite me connecter à un site Web. Pour cela, j'ai recherché la source pour la demande POST. La demande de publication visant à vous connecter au site Web contient les données "nom d'utilisateur", "mot de passe", "horodatage" et "jeton". Cependant, lorsque je copie l'horodatage et le jeton et que je colle la demande de publication dans la barre d'adresse de mon navigateur, avec mon nom d'utilisateur et mon mot de passe, comme suit:
https://example.com/action/login?__elgg_token=905adbf0c0111fef78a8344c38c8f2a8&__elgg_ts=1461577445&username=foo&password=bar
la connexion a échoué. Ai-je besoin d'un jeton et d'un horodatage différents?
C'est de la source:
action="https://example.com/action/login" method="post" >
<input type="hidden" name="__elgg_token" value="905adbf0c0111fef78a8344c38c8f2a8" />
<input type="hidden" name="__elgg_ts" value="1461577445" />
<input type="text" name="username" value="" class="form-control login-textarea form-control" />
<input type="password" name="password" value="" class="form-control login-textarea" />
Réponses:
Autant que je sache, la barre d’adresse des navigateurs Web courants force le navigateur à émettre une demande HTTP GET, et non une requête HTTP POST.
Comme le classe Stacker a commenté. Vous ne pouvez pas supposer qu'une requête POST peut être transformée en une requête GET équivalente qui sera reconnue par le serveur.
Si vous utilisez un langage de script de ligne de commande conventionnel, vous pouvez utiliser plusieurs outils pour émettre une demande POST.
À partir d'un script shell, vous pouvez utiliser des outils tels que Wget ou cURL pour émettre des demandes POST et capturer les cookies de session résultants, etc.
Les scripts écrits en utilisant d'autres langages de script ou des langages plus généraux (Perl, Ruby, Python, etc.) ont généralement des bibliothèques standard qui permettent d'émettre des requêtes POST et GET et de gérer les cookies, etc.
Exemple tiré de la page de manuel Wget
D'autres exemples ne sont pas difficiles à trouver
Comment puis-je me connecter à un site Web avec Python?
Perl Script pour se connecter à un site web
la source