色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 發送json 服務器

錢浩然2年前7瀏覽0評論

在C語言中,發送JSON數據到服務器有很多種方案,本文介紹其中一種常用的方法。

首先,需要用到HTTP客戶端庫libcurl。在使用前,需要安裝該庫,并將其頭文件和動態鏈接庫文件添加到工程中。

下面是發送JSON數據的示例代碼:

CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
// 設置URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/jsonhandler");
// 設置POST請求
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 設置JSON數據
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}");
// 設置請求頭
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
// 執行請求
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
// 釋放資源
curl_easy_cleanup(curl);
}

上面的代碼中,首先使用curl_easy_init()函數初始化一個CURL對象。接下來,使用curl_easy_setopt()函數設置URL、請求方式為POST、JSON數據和請求頭。最后,使用curl_easy_perform()函數執行請求,如果請求失敗,使用curl_easy_strerror()函數輸出錯誤信息。

注意,上面的代碼中的JSON數據是直接寫死的字符串。在實際開發中,需要根據業務邏輯動態生成JSON數據。

完整的代碼可參考以下示例:

#include#includeint main(void) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/jsonhandler");
curl_easy_setopt(curl, CURLOPT_POST, 1L);
// 動態生成JSON數據
char *json_str = "{\"name\":\"John\",\"age\":%d,\"city\":\"%s\"}";
int age = 30;
char city[20] = "New York";
int json_str_len = snprintf(NULL, 0, json_str, age, city);
char *json_data = (char *)malloc(json_str_len + 1);
snprintf(json_data, json_str_len + 1, json_str, age, city);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data);
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}

上面的代碼中,首先使用snprintf()函數動態生成JSON數據。注意,需要通過snprintf()函數計算JSON字符串的長度,并使用malloc()函數動態分配內存。接下來,使用指針json_data指向分配的內存空間,并通過snprintf()函數將動態生成的JSON數據寫入json_data中。最后,執行請求并釋放資源。