我在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--
这个页眉/页脚是什么?
我可以摆脱它吗?还是我应该解析一下?
卷曲添加这些吗?
这是我为发布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
,它将向服务器发送多部分表单。分段式的postpost是一系列带有MIME样式分隔符的部分,以及每个部分的一组标题,与您在那里看到的完全一样。
如果您想要一个没有多部分内容的普通POST,请使用CURLOPT_POSTFIELDS
或设置读取回调并使用CURLOPT_POST
。