使用 libCurl 到 POST 添加未知的页眉和页脚

Using libCurl to POST adds unknown header and footer

我在 C++ 中使用 libCurl 向我的服务器发出 xml 文件的 POST 请求。 post 有效,我在服务器上收到 xml。但是 xml 在 xml:

周围也有一个奇怪的页眉和页脚
------------------------------b6966127f870Content-Disposition: form-data; name="myName"; filename="myFile.xml"Content-Type: application/xml<CORRECT XML FILE HERE>------------------------------b6966127f870--

这是什么header/footer?

我可以摆脱它吗?还是我应该围绕它进行解析?

curl 添加这些了吗?

这是我对 post xml 文件进行的相关 curl 调用。

void CurlUtils::postFileToURL(const char* const inFile,
                              const char* const urlString)
{
  // Setup
  CURL* const curl = curl_easy_init();
  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);

  // Post
  struct curl_httppost* post = NULL;
  struct curl_httppost* last = NULL;
  curl_formadd(&post, &last,
               CURLFORM_COPYNAME, "myName",
               CURLFORM_FILE, inFile,
               CURLFORM_END);
  curl_easy_setopt(curl, CURLOPT_URL, urlString);
  curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
  curl_easy_perform(curl);

  // Cleanup ...
}

您正在使用 CURLOPT_HTTPPOST,它向服务器创建一个多部分表单。多部分表单是一系列带有 MIME 样式分隔符的部分和每个部分的一组 headers,正是您在那里看到的。

如果您想要没有多部分内容的普通 POST,请使用 CURLOPT_POSTFIELDS 或设置读取回调并使用 CURLOPT_POST.