C語言中,POST調用JSON是非常常見的操作,可以用于與服務器進行數據交互。在這里,我們來介紹一下如何使用C語言中的POST調用JSON。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #include <string.h> /** * 發送POST請求 */ int post(char *url, char *postData, char *response) { // 初始化CURL CURL *curl = curl_easy_init(); if (!curl) { return -1; } // 設置請求URL curl_easy_setopt(curl, CURLOPT_URL, url); // 設置請求方式為POST curl_easy_setopt(curl, CURLOPT_POST, 1L); // 設置發送的數據 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData); // 設置接收響應的變量 curl_easy_setopt(curl, CURLOPT_WRITEDATA, response); // 執行請求 CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { return -1; } // 清理CURL curl_easy_cleanup(curl); return 0; } /** * 發送JSON數據 */ int postJSON(char *url, char *json, char *response) { // 設置請求頭 struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); // 發送請求 int status = post(url, json, response); // 清理請求頭 curl_slist_free_all(headers); return status; } int main() { char *url = "https://example.com/api"; char *json = "{ \"name\": \"John\", \"age\": 30 }"; char response[1024] = {0}; if (postJSON(url, json, response) == 0) { printf("%s\n", response); } else { printf("error\n"); } return 0; }
在這里,我們使用了第三方庫CURL來完成請求的發送。我們通過封裝POST請求的方法post()來發送請求,并將請求結果寫入response中。而在發送JSON數據時,我們需要設置請求頭為application/json,并調用封裝好的post()方法。最終,我們將請求結果打印出來,完成了一次POST調用JSON的操作。