在C語言中,發送JSON格式請求是一項非常常見的任務。JSON是一種輕量級的數據交換格式,因此在與RESTful API進行交互時,通常使用JSON格式來傳遞數據。以下是使用C語言發送JSON格式請求的基本示例:
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl = curl_easy_init(); if (curl) { // 定義請求頭和JSON數據 struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type:application/json"); headers = curl_slist_append(headers, "charsets:utf-8"); const char *json_data = "{\"name\":\"Test\",\"age\":25,\"email\":\"test@test.com\"}"; // 設置請求方法和URL curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api/test"); curl_easy_setopt(curl, CURLOPT_POST, 1); // 設置請求頭和JSON數據 curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_data); // 執行請求 res = curl_easy_perform(curl); if (res != CURLE_OK){ fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } // 釋放資源 curl_easy_cleanup(curl); curl_slist_free_all(headers); } return 0; }
在上述代碼中,我們使用CURL庫進行HTTP請求。我們首先初始化一個CURL句柄,然后設置請求方法/URL以及請求體。然后發送請求并接收響應。
在設置請求頭時,我們需要設置Content-Type和charsets。這確保了服務器可以正確解釋我們發送的JSON數據。
通過設置CURLOPT_POST為1,我們可以將請求方法設置為POST。這意味著我們將向服務器發送數據。使用CURLOPT_POSTFIELDS選項可以設置發送的JSON數據。
最后,我們使用curl_easy_perform()函數執行請求。如果請求返回一個錯誤代碼,我們可以使用curl_easy_strerror()函數獲得錯誤消息。
在最后,我們清理了CURL實例并釋放了請求頭對象的所有內存。