J'ai besoin d'envoyer un fichier à un serveur web en utilisant libcurl. J'ai vu l'un des exemples sur le site curl et j'essaie de l'implémenter. c'est l'exemple postit2.c. Quelqu'un peut-il me dire comment je pourrais étendre cela pour être en mesure d'envoyer le nom d'utilisateur et mot de passe ainsiFormulaire d'envoi dans libcurl
1
A
Répondre
1
Utilisez curl_formadd pour ajouter plus de champs aux données POST.
Si vous vouliez ajouter du code à cet exemple, vous le feriez dans la section où le formulaire est en cours d'installation, juste au-dessus du commentaire: /* Fill in the submit field too, even if this is rarely needed */
.
Le code que vous ajouteriez serait quelque chose comme ceci:
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "user", //the name of the data to send
CURLFORM_COPYCONTENTS, "username", //the users username
CURLFORM_END);
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "pass", //the name of the data to send
CURLFORM_COPYCONTENTS, "mypass", //the users password
CURLFORM_END);
Le ressemblerait à quelque chose comme formulaire HTML pour soumettre les mêmes données (En supposant que l'utilisateur a tapé dans les mots de passe corrects) ceci:
Username: <input type="text" name="user" /> <br />
Password: <input type="password" name="pass" />
0
Par exemple, regardez 'res = curl_easy_perform (curl);' part dans postit2.c ... Vous pouvez ajouter 'printf ("CurlCode:% d", res);'. Si le résultat est 0, cela signifie que la soumission est réussie.
pouvez-vous me dire comment le formulaire d'envoi ressemblerait en html ?? J'essayais de tester cela en utilisant wireshark mais je ne pouvais pas voir le code HTML lui-même. – sfactor
@sfactor Terminé. Le code HTML n'est pas envoyé dans une requête POST, les valeurs saisies dans le formulaire sont converties en une clé/valeur comme '? User = nom d'utilisateur & pass = mypass' – Yacoby
comment saurais-je si la soumission est réussie dans ce cas de ma part ? – sfactor