在使用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示例
下一篇vue-cli 搭建