c語言作為一門底層語言,在網(wǎng)絡(luò)編程中也扮演著非常重要的角色。在進行網(wǎng)絡(luò)請求時,發(fā)送多個參數(shù)的json數(shù)據(jù)是非常常見的操作。下面演示一下如何利用c語言實現(xiàn)post多個參數(shù)json數(shù)據(jù)的操作。
// 導入頭文件 #include#include #include #include int main(int argc, char** argv) { CURL *curl; CURLcode res; char* postData = "{ \"param1\": \"value1\", \"param2\": \"value2\" }"; // 初始化curl curl = curl_easy_init(); if(curl) { struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); headers = curl_slist_append(headers, "charset: utf-8"); // setopt設(shè)置參數(shù) curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); curl_easy_setopt(curl, CURLOPT_POST, 1L); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData); // 執(zhí)行請求 res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); // 清除curl curl_easy_cleanup(curl); return 0; } }
以上代碼實現(xiàn)了向http://example.com發(fā)送了一段包含兩個參數(shù)的json數(shù)據(jù)。postData 變量中保存了需要發(fā)送的json數(shù)據(jù),使用 curl 的 CURLOPT_POSTFIELDS 參數(shù)發(fā)送 POST 請求。同時設(shè)置了 HTTP 頭信息,使接收端可以正確地解析提交的 JSON 數(shù)據(jù)。