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

c 調(diào)用 https json

張吉惟2年前7瀏覽0評論

隨著互聯(lián)網(wǎng)技術(shù)的普及和深入,越來越多的應用程序需要通過網(wǎng)絡來傳遞數(shù)據(jù)。特別是在移動互聯(lián)網(wǎng)時代,使用https json傳輸數(shù)據(jù)已經(jīng)成為了很多應用程序的標準實現(xiàn)方式。而c語言作為一種基礎語言,同樣也可以很方便地調(diào)用https json接口。

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <jansson.h>
static size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
size_t realsize = size * nmemb;
*((char *) userdata) = ptr[0];
return realsize;
}
int main() {
CURL *curl;
CURLcode res;
char url[] = "https://api.github.com/users/octocat";
char response[1024];
json_t *root;
json_error_t error;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) response);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
} else {
root = json_loads(response, 0, &error);
if (!root) {
fprintf(stderr, "json_loads() failed: %s\n", error.text);
return EXIT_FAILURE;
}
printf("name: %s\n", json_string_value(json_object_get(root, "name")));
printf("company: %s\n", json_string_value(json_object_get(root, "company")));
printf("location: %s\n", json_string_value(json_object_get(root, "location")));
json_decref(root);
}
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return EXIT_SUCCESS;
}

在上述示例代碼中,我們首先通過curl_easy_init()函數(shù)初始化一個CURL對象,并設置CURLOPT_URL參數(shù)指向需要訪問的https json接口。同時由于大部分https json接口需要證書的驗證,我們需要通過CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST參數(shù)設置為0L來關閉證書驗證。接下來我們需要設置CURLOPT_WRITEFUNCTION來回調(diào)一個函數(shù)用于接收接口返回的數(shù)據(jù),并將該函數(shù)的返回結(jié)果寫入CURLOPT_WRITEDATA參數(shù)中指定的response數(shù)組中。然后通過curl_easy_perform()函數(shù)發(fā)起網(wǎng)絡請求,將response數(shù)組中的內(nèi)容轉(zhuǎn)換為json格式,方便我們進行數(shù)據(jù)解析。最后我們通過調(diào)用json_object_get函數(shù),根據(jù)json中的鍵獲取對應的值,并輸出到控制臺上。