在C語(yǔ)言中,如何編寫一個(gè)服務(wù)端來(lái)處理POST請(qǐng)求的JSON數(shù)據(jù)呢?
我們可以使用libcurl庫(kù)來(lái)完成POST請(qǐng)求的發(fā)送,并通過(guò)cJSON庫(kù)來(lái)解析JSON數(shù)據(jù)。
// 引入curl和cJSON庫(kù) #include#include size_t callback(char *ptr, size_t size, size_t nmemb, void *userdata) { // 接收響應(yīng)數(shù)據(jù) // ... } void postJsonData(char* url, char* postData) { // 初始化curl CURL* curl = curl_easy_init(); if (curl) { // 設(shè)置POST請(qǐng)求的URL curl_easy_setopt(curl, CURLOPT_URL, url); // 設(shè)置POST請(qǐng)求的內(nèi)容類型 curl_slist* headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // 設(shè)置POST請(qǐng)求的發(fā)送數(shù)據(jù) curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData); // 設(shè)置接收響應(yīng)數(shù)據(jù)的回調(diào)函數(shù) curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback); // 發(fā)送POST請(qǐng)求 CURLcode res = curl_easy_perform(curl); // 檢查請(qǐng)求是否成功 if (res != CURLE_OK) { printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } // 釋放curl相關(guān)資源 curl_easy_cleanup(curl); } } int main() { // 準(zhǔn)備POST請(qǐng)求的JSON數(shù)據(jù) cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 28); char* jsonData = cJSON_Print(root); // 發(fā)送POST請(qǐng)求 postJsonData("https://example.com/api", jsonData); // 釋放JSON數(shù)據(jù)資源 cJSON_Delete(root); free(jsonData); return 0; }
通過(guò)以上代碼,我們可以看到,在C語(yǔ)言中,通過(guò)使用libcurl和cJSON庫(kù),我們可以快速地編寫服務(wù)端來(lái)處理POST請(qǐng)求的JSON數(shù)據(jù)。
上一篇python 畫多張圖
下一篇vue中new date