C語言的POST JSON請求可以使用許多不同的庫和方法,其中一個流行的選擇是使用cURL庫和jansson庫。
在這篇文章中,我們將探討如何使用cURL和jansson在C語言中進行POST JSON請求。
步驟1:安裝cURL和jansson庫
#include <curl/curl.h>
#include <jansson.h>
您需要先安裝cURL和jansson庫。可以從官方網站下載源代碼,并根據說明進行安裝。
步驟2:構建JSON數據
json_t *json = json_pack("{s:s,s:s,s:s}",
"name", "Alice",
"age", "25",
"job", "Engineer");
使用jansson庫的json_pack函數可以輕松地構建JSON數據。在此例中,我們使用了三個鍵值對來表示人物的名稱、年齡和工作。
步驟3:設置cURL選項
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
char* url = "https://example.com/api/v1/persons";
cJSON *json_str = cJSON_Print(json);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_str);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(json_str));
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
}
使用cURL的CURLOPT選項可以設置請求的各種選項。在此例中,我們設置了URL和POST請求類型,以及JSON數據作為POST請求正文。
還必須通過HTTP標頭指定Content-Type。這使服務器知道我們發送的是JSON數據。
步驟4:處理響應
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
} else {
long response_code;
curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &response_code);
printf("Response code: %ld\n", response_code);
}
要處理響應,我們首先檢查curl_easy_perform()函數是否成功返回CURLE_OK。如果成功,則可以通過CURLINFO_RESPONSE_CODE選項獲得響應代碼。
這就是在C語言中使用cURL和jansson進行POST JSON請求的基礎知識。