J'essaie de POST les données XML à partir d'un programme c en utilisant libcurl à un site Web. Lorsque j'utilise le programme de ligne de commande sous Linux, curl comme cela, il fonctionne très bien:c libcurl POST ne fonctionne pas de manière cohérente
boucle -X POST -H 'Content-Type: text/xml' -d 'mes données xml' http://test.com/test.php
(I changé les données réelles pour la sécurité)
Mais dès que j'essaie d'écrire du code c en utilisant libcurl, il échoue presque à chaque fois mais réussit de temps en temps. Voici mon code c:
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl)
{
curl_easy_init(curl, CURLOPT_URL, "http://test.com/test.php");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, xmlString.c_str());
curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
J'ai ce code dans une boucle qui passe toutes les 10 secondes et il ne réussira que sur tous les 4 ou 5 appels. Je reçois des erreurs du serveur qui disent "XML Head not found".
J'ai essayé spécifier l'en-tête HTTP avec:
struct curl_slist *chunk = NULL
chunk = curl_slist_append(chunk, "Content-type: text/xml");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
Mais je n'ai pas de chance. Des idées?
Cela a fonctionné. Merci. – rplankenhorn