2010-09-03 4 views
7

Je voudrais envoyer une demande de publication http en C++. Il semble que libcurl (Curlpp) est le chemin à parcourir.C++ - comment envoyer une demande de publication HTTP en utilisant Curlpp ou libcurl

Maintenant, voici une demande typique qui vous envoie

http://abc.com:3456/handler1/start?<name-Value pairs> 

The name values pairs will have: 

field1: ABC 
field2: b, c, d, e, f 
field3: XYZ 

etc. 

Maintenant, je voudrais savoir comment obtenir la même chose en utilisant curlpp ou libcurl. Les extraits de code vont vraiment aider.

Répondre

3

Je n'ai pas d'expérience avec Curlpp mais c'est comme ça que je l'ai fait avec libcurl.

Vous pouvez définir votre URL cible à l'aide

curl_easy_setopt(m_CurlPtr, CURLOPT_URL, "http://urlhere.com/"); 

valeurs POST sont stockés dans une liste chaînée - vous devriez avoir deux variables pour tenir le début et la fin de cette liste afin que cURL peut ajouter une valeur à lui.

struct curl_httppost* beginPostList; 
struct curl_httppost* endPostList; 

Vous pouvez ensuite ajouter cette variable post en utilisant

curl_formadd(&beginPostList, &endPostList, CURLFORM_COPYNAME, "key", CURLFORM_COPYCONTENTS, "value", CURLFORM_END); 

Envoi fonctionne alors comme ce

curl_easy_setopt(m_CurlPtr, CURLOPT_POST, true); 
curl_easy_setopt(m_CurlPtr, CURLOPT_HTTPPOST, beginPostList); 
curl_easy_perform(m_CurlPtr); 

Hope this helps!