我正在使用此代码将json发布到服务器:
但似乎CURL在某种程度上逃脱了数据,即将其转换为数据 “{\”email \“:\”test@example.se \“}”(使我的报价转义)。 我认为curl仍然使用Content-Type“application / x-www-form-urlencoded”发布,即使你在我的标题中用application / json覆盖了它。 如何让卷曲不这样做?
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_POST, 1L);
const std::string& data = "{\"email\":\"test@example.se\"}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str() );
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, data.size() );
// Headers
curl_easy_setopt(headers, "Content-Type: application/json");
curl_easy_setopt(headers, "Authorization: Basic: something:something");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_perform(curl);
答案 0 :(得分:1)
从这里开始:http://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDS.html
libcurl不会以任何方式为您转换或编码。
指向的数据不会被库复制:因此,它必须由调用应用程序保留,直到关联的传输完成。
您确定要遵守这些通知吗?