欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json發送和接收例子

錢良釵1年前7瀏覽0評論

C語言中使用JSON進行數據傳輸的應用愈發廣泛,本文將介紹一個利用C語言中的JSON庫進行發送和接收數據的例子。

首先是發送數據的部分,我們使用libcurl庫進行HTTP請求并將JSON數據作為POST參數發送給服務器。這里可以使用CJSON庫生成JSON數據,也可以手寫一個JSON字符串。具體代碼如下:

CURL *curl;
CURLcode res;
char* url = "http://localhost:8080/receive_data";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
char json_str[1024];
CJSON *json = CJSON_CreateObject();
CJSON_AddItemToObject(json, "name", CJSON_CreateString("John"));
CJSON_AddItemToObject(json, "age", CJSON_CreateNumber(35));
CJSON_AddItemToObject(json, "gender", CJSON_CreateString("male"));
CJSON_PrintPreallocated(json, json_str, 1024, 0);
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_str);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
CJSON_Delete(json);

然后是接收數據的部分,我們可以使用libcurl庫從服務器獲取JSON數據,然后使用CJSON庫解析該JSON數據。具體代碼如下:

CURL *curl;
CURLcode res;
char* url = "http://localhost:8080/send_data";
long http_code;
char *json_str;
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &json_str);
res = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
curl_easy_cleanup(curl);
}
if(http_code == 200)
{
CJSON *json = CJSON_Parse(json_str);
char *name = CJSON_GetObjectItem(json, "name")->valuestring;
int age = CJSON_GetObjectItem(json, "age")->valueint;
char *gender = CJSON_GetObjectItem(json, "gender")->valuestring;
printf("%s %d %s\n", name, age, gender);
CJSON_Delete(json);
}
free(json_str);

在代碼中,write_callback函數是libcurl庫的回調函數,用于處理服務器返回的數據。最后記得釋放相關內存,避免內存泄露。