作為一種高效的編程語言,C語言在網絡開發方面也有著得天獨厚的優勢。在此,我們將以訪問網站并獲取JSON數據庫為例,向大家介紹C語言的網絡編程。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#define BUFFER_SIZE (256 * 1024)
//用于存放數據的緩沖區
char buffer[BUFFER_SIZE];
//回調函數,當網站有數據返回時被調用
size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
strcat(buffer, ptr);
return size * nmemb;
}
int main(void)
{
CURL *curl;
CURLcode res;
//初始化curl庫
curl = curl_easy_init();
if(curl) {
//設置目標地址,這里以某天氣API為例
curl_easy_setopt(curl, CURLOPT_URL, "https://www.tianqiapi.com/api?version=v1&city=北京&appid=123456&appsecret=123456");
//設置回調函數
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
//執行HTTP GET請求
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
else {
printf("%s\n", buffer);
}
//清理curl資源
curl_easy_cleanup(curl);
}
//退出程序
return 0;
}
以上代碼使用了Curl庫實現了HTTP GET請求并通過回調函數獲取JSON數據。需要注意的是,返回數據可能會超出緩沖區大小,這里僅供參考。
上一篇c 訪問json文件