Я пытаюсь отправить данные XML из программы AC с помощью libcurl на веб-сайт.Когда я использую программу командной строки в Linux, curl, как это работает нормально:
curl -X POST -H 'Тип содержимого: text / xml' -d 'my xml data' http://test.com/test.php
(я изменил фактические данные в целях безопасности)
Но как только я пытаюсь написать код на языке c использованием libcurl, он терпит неудачу почти каждый раз, но каждый раз успешно.Вот мой код 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);
У меня есть этот код в цикле, который выполняется примерно каждые 10 секунд, и он будет успешным только для каждых 4 или 5 вызовов.Я получаю сообщения об ошибках от сервера, на которых написано «Голова XML не найдена».
Я попытался указать заголовок HTTP с помощью:
struct curl_slist *chunk = NULL
chunk = curl_slist_append(chunk, "Content-type: text/xml");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
Но мне не повезло.Есть идеи?