在使用C語言發送HTTP請求時,常常需要發送JSON參數。具體實現方法如下:
#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { char *json = "{ \"name\": \"John Doe\", \"age\": 30 }"; curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json); curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(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; }
在代碼中,我們先通過curl_global_init()初始化curl,然后使用curl_easy_init()初始化一個CURL對象。接下來,我們需要準備待發送的JSON參數,并調用curl_easy_setopt()方法設置請求的URL和JSON數據。
此外,在發送JSON參數時,我們還需要設置請求頭,以告訴服務器發送的數據類型是JSON。這可以通過調用curl_slist_append()方法和curl_easy_setopt()方法實現,具體實現如下:
// 設置請求頭 struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
最后,我們調用curl_easy_perform()方法發送請求,如果請求成功,其返回值為CURLE_OK。
以上就是在C語言中發送JSON參數請求的具體實現方法。