在C語言中,發送POST請求并傳遞JSON數據是一個需要了解的常見用法。下面是一個示例代碼,展示了如何使用curl庫發送HTTP POST請求,并使用JSON格式傳輸數據:
#include#include int main(void) { CURL *curl; CURLcode res; /* JSON數據 */ char *json = "{\"name\":\"Cindy\", \"age\":20}"; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api"); /* 使用POST請求 */ curl_easy_setopt(curl, CURLOPT_POST, 1L); /* 將JSON數據傳遞給請求 */ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json); /* 設置請求頭 */ struct curl_slist *headers=NULL; headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); /* 發送請求并獲取響應 */ res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); /* Always cleanup */ curl_easy_cleanup(curl); } return 0; }
代碼中使用了curl庫進行網絡請求的發送和設置請求頭,首先使用curl_easy_setopt設置請求的URL為http://example.com/api,然后使用CURLOPT_POST表示以POST方式發送請求,接著將JSON數據傳遞給請求,并且設置Content-Type請求頭為application/json。最后,使用curl_easy_perform發送請求,并且檢查返回值以確認請求是否成功。