在網(wǎng)絡(luò)數(shù)據(jù)傳輸中,常常使用HTTP協(xié)議來實(shí)現(xiàn)客戶端與服務(wù)端的數(shù)據(jù)交互。其中,POST方法是一種常見的方式。今天,我們來討論如何使用C語言實(shí)現(xiàn)HTTP POST方法中的JSON數(shù)據(jù)。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> int main() { CURL *curl; CURLcode res; char *json = "{ \"name\": \"張三\", \"age\": 18 }"; struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api/user"); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json); 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_global_cleanup(); return 0; }
上述代碼利用了libcurl庫,執(zhí)行了一次POST請求。在headers中設(shè)置了Content-Type為application/json,確保POST數(shù)據(jù)的正確格式。在POSTFIELDS中放入了要發(fā)送的JSON數(shù)據(jù)。
代碼執(zhí)行完畢后,我們可以直接檢查response的狀態(tài)碼及內(nèi)容是否符合預(yù)期。