C語言是一種廣泛使用的計算機編程語言。在C語言中,我們可以通過使用第三方庫來與Web API進行交互,其中最常用的是HTTP協議和JSON格式。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #include <jansson.h> int main() { // 初始化 CURL CURL *curl_handle; curl_handle = curl_easy_init(); // 配置 API URL char *url = "https://api.example.com/data.json"; curl_easy_setopt(curl_handle, CURLOPT_URL, url); // 配置 JSON 編碼 struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, headers); // 發送請求并接收響應 CURLcode res; res = curl_easy_perform(curl_handle); if(res != CURLE_OK) { fprintf(stderr, "Request failed: %s\n", curl_easy_strerror(res)); } else { // 解析響應中的 JSON 數據 json_t *root; json_error_t error; root = json_loads(curl_handle->data, 0, &error); if(!root) { fprintf(stderr, "Failed to parse JSON: %s\n", error.text); } else { // 訪問 JSON 數據 json_t *data = json_object_get(root, "data"); if(!data) { fprintf(stderr, "Failed to get data field\n"); } else { // 輸出 JSON 數組中的元素 for(int i = 0; i< json_array_size(data); i++) { json_t *item = json_array_get(data, i); if(!item) { fprintf(stderr, "Failed to get item at index %d\n", i); } else { printf("%s\n", json_string_value(item)); } } } // 釋放資源 json_decref(root); } } curl_easy_cleanup(curl_handle); }
在這個示例中,我們使用了CURL庫來發送HTTP請求并接收響應。通過配置HTTP頭的Content-Type字段為application/json,我們告訴API服務器我們期望響應中包含JSON數據。
在接收到響應后,我們使用jansson庫解析JSON數據。通過調用json_loads函數將響應內容解析為JSON對象,我們可以訪問其中的字段和數組元素。
利用HTTP協議和JSON數據格式,我們可以方便地與Web API進行交互。在C語言中,使用第三方庫可以輕松地實現這一點。