C/C++中,利用curl庫函式傳送簡單的POST請求
阿新 • • 發佈:2020-12-09
C/C++中,利用curl庫函式傳送簡單的POST請求
void curl_post(const char *json)
{
const char *url ="http://www.baidu.com:80"; //ip+埠
CURLcode result;
CURL *h = curl_easy_init();
if (h) {
curl_slist *plist = curl_slist_append(NULL, "Content-Type:application/json;");//新增head,代表資料為json格式
curl_easy_setopt(h, CURLOPT_HTTPHEADER, plist);
curl_easy_setopt(h, CURLOPT_URL, url);//傳送的url
curl_easy_setopt(h, CURLOPT_POSTFIELDS,json);//待發送的資料
curl_easy_setopt(h, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt(h, CURLOPT_WRITEFUNCTION, update);//返回的回撥函式
result = curl_easy_perform( h);//阻塞等待結束
curl_easy_cleanup(h);
}
}
void update(void *ptr, size_t size, size_t nmemb, void *userp)
{
UNUSED(userp);
char json[2*1024];
size_t real_size = nmemb * size;
memset(json, 0, 2*1024);
memcpy(json, ptr, size*nmemb);
json[size*nmemb]= 0;
return real_size;//資料過大時,會多次呼叫回撥函式,每次需要返回所接收的大小
}