在C語言中,使用HTTP協議進行網絡通訊時,我們需要使用GET請求來獲取JSON數據。
#include#include #include //需要安裝libcurl庫 int main() { CURL *curl; CURLcode res; char *url = "https://example.com/json"; //JSON數據的URL地址 char *response; //存放JSON數據的指針 long response_code; //存放響應狀態碼 curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, url); res = curl_easy_perform(curl); if(res == CURLE_OK) { curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code); if(response_code == 200) //請求成功 { curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &response_length); response = (char*)malloc(response_length+1); //為響應數據分配空間 if(response) { curl_easy_setopt(curl, CURLOPT_WRITEDATA, response); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); curl_easy_perform(curl); response[response_length] = '\0'; //在字符串的最后補上結束符 printf("%s\n", response); free(response); //釋放內存空間 } } } curl_easy_cleanup(curl); } return 0; }
上述代碼使用了libcurl庫中的CURL庫函數,其中CURLOPT_URL是設置請求地址的選項,CURLOPT_WRITEDATA是設置接收數據的指針,CURLOPT_WRITEFUNCTION是設置接收數據的回調函數。我們可以通過解析獲取到的JSON數據,進行后續的業務處理。