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

c http請求 json數據

錢多多2年前9瀏覽0評論

在C語言中,使用HTTP請求JSON數據是非常常見的,我們可以利用一些第三方庫,比如cURL進行請求,然后使用一些JSON庫,比如cJSON對返回的數據進行解析。

下面是一個使用cURL和cJSON進行HTTP請求和JSON數據解析的例子:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include <cjson/cJSON.h>
int main(void)
{
CURL *curl;
CURLcode res;
char *url = "https://api.example.com/data";
char *data = "{\"username\": \"test\", \"password\": \"123456\"}";
char *response = NULL;
cJSON *json = NULL;
cJSON *data_obj = NULL;
cJSON *item = NULL;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
if(res == CURLE_OK) {
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
if(response_code == 200) {
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_perform(curl);
json = cJSON_Parse(response);
data_obj = cJSON_GetObjectItem(json, "data");
if(data_obj != NULL) {
item = cJSON_GetObjectItem(data_obj, "param1");
if(item != NULL) {
printf("param1: %s\n", item->valuestring);
}
item = cJSON_GetObjectItem(data_obj, "param2");
if(item != NULL) {
printf("param2: %d\n", item->valueint);
}
}
}
}
curl_easy_cleanup(curl);
}
return 0;
}

在這個例子中,我們使用cURL發送了一個POST請求到https://api.example.com/data,數據為{\"username\": \"test\", \"password\": \"123456\"}。然后我們解析了返回的JSON數據,并獲取了其中的param1和param2字段的值。

需要注意的是,我們將JSON數據作為字符串傳遞給POST請求,因此需要對JSON數據進行字符串化。