最近我在學習c語言網絡編程的時候,遇到了一個問題:如何獲取網頁中的json數據庫。經過一番搜索和總結,我發現了一種可行的方法。
//引入相關頭文件 #include#include #include //定義回調函數,用于處理獲取到的數據 size_t write_callback_func(void* buffer, size_t size, size_t nmemb, void* userp) { char** response_ptr = (char**)userp; //拼接數據 *response_ptr = strncat(*response_ptr, buffer, size * nmemb); return size * nmemb; } int main() { CURL* curl; CURLcode res; char* response = NULL; curl = curl_easy_init(); if (curl) { //設置請求的url curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/example.json"); //開啟跟蹤網絡操作 curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); //設置回調函數 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback_func); //將response_ptr傳遞到回調函數中,以接收數據 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); //執行請求 res = curl_easy_perform(curl); //釋放curl句柄 curl_easy_cleanup(curl); //打印獲取到的json數據 printf("Response: %s\n", response); //釋放response的內存 free(response); } return 0; }
以上是獲取網頁中json數據的c語言代碼,主要借助了curl庫和回調函數的方式來實現。使用時,只需要將要請求的url放入curl_easy_setopt函數中,以及將response_ptr傳遞到回調函數中即可。