Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 5


|
Menu Snippets (navigation): |
Détails du snippet : [wxHTTP] : envoyer une requête POST |
Informations sur l'auteur de ce snippet : | |

Hors ligne
| Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
|
Introduction / Description : | |
Il peut être pratique, lorsque l'on crée une application en relation avec internet, d'avoir à envoyer une requête avec la méthode "POST".
Pour information, il s'agit de la méthode utilisée par la quasi-totalité des formulaires sur les sites.
Il est tout à fait possible de faire ce genre de requête avec la classe wxHTTP, encore faut-il savoir comment faire.
Code wxWidgets:// Le header pour la classe wxHTTP #include <wx/protocol/http.h> wxHTTP http; // Le header servant à déclarer le type de requête POST http.SetHeader(_T("Content-type"),wxT("application/x-www-form-urlencoded")); // Les valeurs à transmettre par la méthode POST. http.SetPostBuffer(_T("pseudo=MonPseudo&password=MonMotDePasse")); // On mets le Timeout à 2 minutes (car par défaut, wxWidgets le met à 10 minutes) http.SetTimeout(120); // Le buffer qui va recevoir les données char szBuff[1025]; // Pour une page web, on va pouvoir la stocker dans un wxString wxString data=_T(""); // On essaye de connecter le wxHTTP : on ne peut se connecter qu'à un serveur // et non à une adresse complète du style http://www.wxwidgets.org/downloads if (http.Connect(_T("www.monsite.fr"),80)) { if (wxInputStream *stream=http.GetInputStream(_T("/connection.php") ) ) { // On lit une partie des données disponibles stream->Read(szBuff,1024); while (stream->LastRead()) { // On s'assure que le texte téléchargé se termine bien // par un caratère zéro szBuff[stream->LastRead()]='\0'; // On fait la conversion si nécessaire data+= wxString::FromAscii(szBuff); // Et on essaie de lire la partie suivante stream->Read(szBuff,1024); } delete stream; } } // Vous pouvez maintenant faire ce que vous voulez anec le wxString "data"
C'est tout. Vous aurez sans doute remarqué la façon de transmettre les données : il suffit de les placer dans un wxString de la façon suivante: NomDeLaVariable1=ValeurDeLaVariable1&NomDeLaVariable2=ValeurDeLaVariable2&NomDeLaVariable3=ValeurDeLaVariable3A noter que cette méthode ne permet pas d'uploader des fichiers. Pour cela, il faut modifier le header "Content-type" pour lui donner la valeur "multipart/form-data", et encoder le fichier avec la méthode base64. Du moins, c'est ce qu'il me semble  Ça fera l'objet d'un autre snippet... En attandant, @+ et bonne prog ! Xav'
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne |
A mon avis faudrai que tu mettes les deux tutos dans un seul, ils sont trés complémentaires je trouve
|
Itérer est humain, récurser est divin
|
patrick (Invité)
|
Bonjour,
Est ce qu'il y a moyen d'avoir un exemple d'envoi de fichier par wxhttp en POST ?
merci,
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
patrick:Bonjour Est ce qu'il y a moyen d'avoir un exemple d'envoi de fichier par wxhttp en POST ? merci, Bien sûr. Je ferais quelques essais ce soir, si je trouve le temps, pour voir comment ça marche exactement.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Bon, ben en fait, c'est un peu plus compliqué que prévu... Mais il ne faut pas désespérer, j'y arriverais bien...
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
Menu Snippets (navigation): |
|