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

c 調用 api 返回json數據

阮建安1年前8瀏覽0評論

在使用C語言編寫程序時,常常會需要調用API,獲取數據。其中,返回JSON數據也是常見的需求之一。下面我們就來詳細講述使用C調用API返回JSON數據的方法。

#include <stdio.h>
#include <curl/curl.h>
// http請求回調寫法
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
sprintf(userdata, "%s%s", (char *)userdata, ptr);
return size * nmemb;
}
int main() {
CURL *curl;
CURLcode res;
char response[4096];
curl = curl_easy_init();
if (curl) {
// 設置 CURLOPT_URL
curl_easy_setopt(curl, CURLOPT_URL, "http://api.example.com/json");
// 設置回調函數
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response);
// 執行HTTP請求
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
// 釋放curl句柄
curl_easy_cleanup(curl);
// 輸出JSON數據
printf("response: %s", response);
}
return 0;
}

上述代碼使用了libcurl庫來完成HTTP請求,并通過設置回調函數來獲取JSON數據。

在使用時,我們可以將以上代碼拷貝至本地,根據需要修改URL、回調函數等參數,并編譯運行即可。

需要注意的是,以上代碼中response數組的大小為4096,如果返回的JSON數據超過了該長度,會導致數據截斷。因此,在使用時需要根據實際情況調整該數組的大小。

上一篇vue-cli示例