在C語言中,HTTP的API總是被用來處理JSON數據。但是,在發送POST請求時,API接口需要使用JSON請求。那么,如何在C語言中傳遞JSON參數呢?
C語言中傳遞JSON數據的最好方式是通過curl庫和json-c庫。Curl是一種廣泛使用的命令行終端工具,可以在其他終端上運行,而json-c是一個輕量級的JSON庫。以下是一個使用curl和json-c庫發送JSON請求的示例程序:
#include#include #include #include #include void post_request(char* url, char* json_content) { CURL *curl = NULL; CURLcode res; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { struct curl_slist *list = NULL; json_object *json = json_tokener_parse(json_content); char *temp = json_object_to_json_string(json); curl_easy_setopt(curl, CURLOPT_URL, url); list = curl_slist_append(list, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, temp); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list); curl_easy_setopt(curl, CURLOPT_POST, 1L); 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(); } int main() { char *url = "http://example.com/api"; char *content = "{ \"key1\": \"value1\", \"key2\": \"value2\" }"; post_request(url,content); return 0; }
使用以上代碼,就可以在C語言中發送JSON請求了。需要注意的是,在發送請求之前,請確保使用json-c庫將待發送的JSON數據格式化為字符串,并且在Content-Type請求頭中指定數據類型為application/json。
上一篇html導航欄代碼跳轉
下一篇python 里用c