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

c 調用接口服務json get例子

謝彥文2年前7瀏覽0評論

在C語言中調用接口服務是非常常見的操作,特別是調用JSON GET接口,在這里,我們將演示如何使用C語言調用JSON GET接口。

#include#include#include//引入curl庫
#include//引入cjson庫
typedef struct {
char* memory;
size_t size;
} MemoryStruct;
static size_t WriteMemoryCallback(void* contents, size_t size, size_t nmemb, void* userp) //寫入內存回調函數
{
size_t realsize = size * nmemb;
MemoryStruct* mem = (MemoryStruct*)userp;
char* ptr = realloc(mem->memory, mem->size + realsize + 1);
if (ptr == NULL) {
/* out of memory! */
printf("realloc failed\n");
return 0;
}
mem->memory = ptr;
memcpy(&(mem->memory[mem->size]), contents, realsize);
mem->size += realsize;
mem->memory[mem->size] = 0;
return realsize;
}
int main(int argc, char const* argv[])
{
CURL* curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);        //初始化curl全局變量
curl = curl_easy_init();                      //初始化curl句柄
if (curl) {
MemoryStruct chunk;
chunk.memory = malloc(1);                  //設置內存存儲區
chunk.size = 0;
char url[] = "https://jsonplaceholder.typicode.com/todos/1";    //設置發起GET請求的url
curl_easy_setopt(curl, CURLOPT_URL, url);  //設置url
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);   //設置寫入內存回調函數
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&chunk);             //設置寫入內存的數據指針
res = curl_easy_perform(curl);              //執行請求
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
else {
printf("%s", chunk.memory);             //請求成功,打印返回結果
}
free(chunk.memory);                         //釋放內存
curl_easy_cleanup(curl);                    //釋放curl句柄
}
curl_global_cleanup();                         //釋放全局變量
return 0;
}

在這個例子中,我們使用了curl庫來發起GET請求,并使用cjson庫來處理返回的json數據。其中,WriteMemoryCallback函數是我們設置的回調函數,用來處理請求的返回結果,并將結果寫入內存。最后,我們打印內存中存儲的返回結果。