Мне нужно больше ясности относительно того, как установить URI запроса в заголовке. Когда я отправляю команду публикации через Python с помощью Zeep, заголовок сообщения на изображении из Wireshark выглядит следующим образом:
[img]https://i.stack.imgur.com /4ADDl.png[/img]
Однако, когда я пытаюсь отправить сообщение внутри libcurl, я получаю следующее:
Есть ли опция Curlopt, которую мне не хватает, чтобы установить это поле URI? Мне действительно нужен Curl, чтобы точно воспроизвести то, что было отправлено в Python.
Мои параметры Curl установлены с помощью:
Код: Выделить всё
curl = curl_easy_init();
std::string url = serverIP + ":" + std::to_string(serverPort);
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, settings.responseTimeout_ms);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &cameraResponse);
Код: Выделить всё
size_t writeCallback(char* contents, size_t size, size_t nmemb, std::string* userp)
{
userp->append(contents, size * nmemb);
return size * nmemb;
}
Код: Выделить всё
struct curl_slist* header = nullptr;
header = curl_slist_append(header, host.c_str());
header = curl_slist_append(header, agent.c_str());
header = curl_slist_append(header, acceptEncoding.c_str());
header = curl_slist_append(header, accept.c_str());
header = curl_slist_append(header, connection.c_str());
header = curl_slist_append(header, soapAction.c_str());
header = curl_slist_append(header, contentType.c_str());
header = curl_slist_append(header, contentLength.c_str());
Затем я устанавливаю последние параметры завивки и вызываю easy Perform
Код: Выделить всё
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, content.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, header);
CURLcode curlResult = curl_easy_perform(curl);
Кроме того, я вижу, что параметр загиба для моего контента — «URLOPT_POSTFIELDS» во множественном числе. Я предполагаю, что это просто означает то, что я втиснул в содержимое в моем случае (а не фактические дополнительные входные данные для этой опции завитка).
Подробнее здесь: https://stackoverflow.com/questions/783 ... st-command
Мобильная версия