1 votes

Puis-je remplir et soumettre ce formulaire avec cURL ?

Je suis en train d'essayer de soumettre des données à un formulaire au travail. Je soupçonne que mon approche naïve ne fonctionne pas à cause de la "technologie" sur la page qui interfère avec cela. Fondamentalement, la page Web (désolé je ne peux pas mettre de lien ici, ce n'est pas public) a

et ensuite plusieurs champs de saisie comme

donc j'essaie la commande cURL suivante:

curl -d "docIdent=WHATEVER" -d "type=WHATEVER" -d "comment=" URL

où les trois morceaux de données semblent être nécessaires ont été obtenus par: 1. Télécharger le fichier .html. 2. Changer la méthode du formulaire de "post" à "get" et l'ouvrir dans un navigateur. 3. Remplir le formulaire et soumettre (j'ai reçu une erreur "page non trouvée", bien sûr, mais le nouvel URL avait toutes ces données, y compris le 3ème champ vide).

Eh bien, ça ne marche pas (je reçois de nouveau la même page de connexion, et je peux vérifier qu'il n'y a pas eu de connexion au moment où j'ai essayé). Je ne sais pas grand-chose sur ces choses mais je soupçonne que cela peut être un autre code pas présent sur la page: il y a

et bien sûr le "login.php" dans l'ouverture du formulaire. D'après de nombreux autres messages, ma syntaxe semble correcte; y a-t-il un espoir pour une connexion automatique (le type de script bash que je mettrai dans cron, comme le one-liner que j'essaie)? Merci.

0voto

David Sevilla Points 11

Eh bien, à la fin j'ai trouvé la solution suivante: avec mon navigateur (Firefox, Outils de développement Web) j'ai capturé la requête. Ça ressemblait à ça:

curl 'URL' -H 'Host: QUELQUECHOSE' -H 'User-Agent: QUELQUECHOSE' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en,en-US;q=0.5' --compressed -H 'Referer: QUELQUECHOSE' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' --data 'PEU IMPORTE'

... plus les informations de cookie, que j'ai enlevées car je voulais voir si le reste, qui ne change pas à chaque fois, était suffisant. Et ça a fonctionné. Un grand merci à grawity pour le précieux soutien.

0voto

Hermann Schwarz Points 101

Vous pouvez capturer chaque requête HTTP (formulaires GET ou POST) avec les outils Web de Firefox :

Outils Web -> Réseau -> envoyer votre formulaire -> menu contextuel de l'URL du formulaire (clic droit sur le script du formulaire) -> Copier => copier en tant qu'adresse cURL

Plus d'informations : https://everything.curl.dev/usingcurl/copyas

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X