在C語言中,通過POST方式傳遞JSON數據是一種非常常見的操作,本文介紹如何在C語言中通過POST方式傳遞JSON數據。
#include <stdio.h> #include <curl/curl.h> #include <string.h> int main(void) { CURL *curl; CURLcode res; char *json_string = "{\"name\":\"xiaoming\",\"age\":18}"; char *post_url = "http://localhost:8080/post_json_data"; struct curl_slist *http_headers_list = NULL; http_headers_list = curl_slist_append(http_headers_list, "Content-Type: application/json"); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, post_url); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, http_headers_list); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string); 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(http_headers_list); return 0; }
對于以上代碼,首先需要引入curl庫的頭文件,然后定義要傳遞的JSON字符串和POST地址,并定義http頭,最后使用curl_easy_init()函數初始化curl,設置需要傳遞的參數,并使用curl_easy_perform()函數傳遞參數。
需要注意的是,此處必須設置http頭,指定Content-Type為application/json,同時也需要在代碼結束后,調用curl_slist_free_all()函數釋放http頭。
以上就是C語言中如何通過POST方式傳遞JSON數據的方法。