在進行 Web 開發過程中,經常需要向服務器發送 HTTP 請求。CURL 是一個很好的開源工具,支持多種協議,包括 HTTP、FTP、SMTP 等。下面介紹如何使用 C 語言的 CURL 庫來發送 JSON 數據。
首先,需要引入 curl 和 json-c 庫:
#include <curl/curl.h> #include <jansson.h>
然后,創建一個 JSON 對象,填充需要發送的數據:
json_t *data = json_object(); json_object_set_new(data, "name", json_string("張三")); json_object_set_new(data, "age", json_integer(25));
接下來,將 JSON 對象轉化為字符串:
char *json_str = json_dumps(data, JSON_INDENT(4));
然后,設置 HTTP 請求頭和請求體:
struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); CURL *curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_str); curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api"); curl_easy_perform(curl); curl_easy_cleanup(curl); }
最后,釋放 JSON 對象和字符串:
json_decref(data); free(json_str);
以上就是使用 curl 庫發送 JSON 數據的完整代碼。值得一提的是,在實際開發中,也可以使用第三方庫,如 libcurl-easy 和 cJSON,更加方便快捷。
上一篇vue grails