使用libCurl进行POST会添加未知的页眉和页脚

时间:2016-09-23 20:00:20

标签: c++ curl libcurl

我在c ++中使用libCurl向我的服务器发出xml文件的POST请求。帖子工作,我在我的服务器上收到xml。然而,xml也有一个奇怪的标题& xml周围的页脚:

------------------------------b6966127f870Content-Disposition: form-data; name="myName"; filename="myFile.xml"Content-Type: application/xml<CORRECT XML FILE HERE>------------------------------b6966127f870--

这个页眉/页脚是什么?

我可以摆脱它吗?或者我应该只是解析它?

curl是否添加了这些?

以下是我发布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 ...
}

1 个答案:

答案 0 :(得分:2)

您正在使用CURLOPT_HTTPPOST对服务器进行多部分formpost。 multipart formpost是一系列具有MIME样式分隔符的部分,每个部分都有一组标题,正如您在那里看到的那样。

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