使用libcurl使用http post将json数据直接上传的示例代码
时间: 2024-06-10 20:06:03 浏览: 152
好的,以下是使用libcurl进行http post上传json数据的示例代码:
```
#include <curl/curl.h>
#include <iostream>
#include <cstring>
int main()
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (!curl) {
std::cerr << "curl_easy_init() failed" << std::endl;
return 1;
}
const char *url = "http://example.com/upload";
const char *data = R"({"name": "John", "age": 30})";
struct curl_slist *headers = nullptr;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
return 0;
}
```
这段代码使用了libcurl库的curl_easy_setopt()函数和curl_easy_perform()函数来完成http post上传json数据的操作。注意要设置Content-Type请求头为application/json类型,以告知服务器上传的数据为json格式。也需要将CURLOPT_POST选项设置为1L,表示使用POST方法上传数据。
阅读全文