2016-09-23 42 views
0

我在C++中使用libCurl向我的服务器发出一个xml文件的POST请求。该文章的作品,我收到我的服务器上的XML。然而,XML也有周围的XML一个奇怪的头&页脚:使用libCurl POST添加未知的页眉和页脚

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

这是什么页眉/页脚?

我可以摆脱它吗?或者我应该解析一下吗?

卷曲添加这些?

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

回答

2

您正在使用CURLOPT_HTTPPOST这使得多部分formpost到服务器。多部分formpost是一系列具有MIME风格分隔符的部分,以及每个部分的一组标题,正是您在那里看到的内容。

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