欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c http get json數據

劉姿婷2年前9瀏覽0評論

C語言是一種常用的編程語言,可以用來進行各種各樣的開發工作。HTTP GET是進行網絡訪問的一種方式,而JSON是一種輕量級的數據交換格式。在C語言中,可以使用HTTP GET訪問JSON數據,這種方式廣泛應用于各類Web API的調用以及一些數據交互操作中。

#include#include#include#includeint main() {
CURL *http_handle;
CURLcode http_res;
char *url = "http://example.com/api/data.json";
char *http_data = NULL;
http_handle = curl_easy_init();
if (http_handle == NULL) {
printf("Init HTTP handle failed!\n");
return -1;
}
curl_easy_setopt(http_handle, CURLOPT_URL, url);
curl_easy_setopt(http_handle, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(http_handle, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(http_handle, CURLOPT_WRITEDATA, &http_data);
http_res = curl_easy_perform(http_handle);
if (http_res != CURLE_OK) {
printf("CURL error: %s\n", curl_easy_strerror(http_res));
curl_easy_cleanup(http_handle);
return -1;
}
curl_easy_cleanup(http_handle);
printf("HTTP response data: %s\n", http_data);
if (http_data != NULL) {
free(http_data);
http_data = NULL;
}
return 0;
}
static size_t write_callback(char *data, size_t size, size_t nmemb, void *userp) {
size_t realsize = size * nmemb;
char **pstr = (char **)userp;
*pstr = realloc(*pstr, strlen(*pstr) + realsize + 1);
if (*pstr == NULL) {
printf("Memory allocation error!\n");
return 0;
}
strncat(*pstr, data, realsize);
return realsize;
}

在上面的代碼中,我們使用了libcurl庫來完成HTTP GET請求的發送與接收。首先,我們調用curl_easy_init()來初始化一個新的CURL句柄,并設置一些參數。其中,CURLOPT_URL選項指定了待訪問的API地址,CURLOPT_FOLLOWLOCATION選項告訴curl庫要自動跟蹤重定向,CURLOPT_WRITEFUNCTION選項指定了一個回調函數來接收HTTP響應數據,并把接收到的數據保存在一個字符串中。

接著,我們調用curl_easy_perform()來執行HTTP GET請求,并檢查返回值是否為CURLE_OK。如果HTTP請求成功,我們將得到一個包含JSON數據的字符串。最后,我們清理CURL句柄,并使用free()釋放動態內存。

總之,C語言中的HTTP GET訪問JSON數據是一個非常常見的任務。通過使用libcurl庫,我們可以很容易地實現這個目標。