У меня проблема с curl, так как я не могу выполнить запрос PUT со встроенными XML-данными, я не уверен, как это делается, но я сделал несколько попыток использовать разные методы. Сначала я попытался использовать CURLOPT_UPLOAD
в качестве параметра CURL по умолчанию для PUT и попытался добавить данные xml вручную:
typedef map<string, string> headers_t;
std::string strCommand = <XMLCOMMAND>
PUTRequest(param1, param2, ...)
{
...
headers_t headers;
int nLen = strCommand.length();
stringstream issLen;
issLen << nLen;
issLen >> strln;
curl_easy_setopt(curl, CURLOPT_UPLOAD, true); // HTTP PUT
headers.append("Content-Length: "+ strln); //
headers.append(strCommand);
...
}
Затем я попробовал тот же метод, но с использованием CURLOPT_POSTFIELDS
и CURLOPT_POSTFIELDSIZE
вместо ручного добавления команды к заголовкам HTTP .... не сработало.
Затем я попытался настроить запрос PUT с помощью параметра CURLOPT_CUSTOMREQUEST
и установить для параметра значение PUT, а также вручную добавить команду и использовать метод POSTFIELDS.
К сожалению, никто не работал, и теперь я не знаю, что делать дальше.