在使用C語言進行HTTP POST請求時,常常需要發送JSON數據。以下是一份使用C語言發送HTTP POST請求并發送JSON數據的示例代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> int main(int argc, char *argv[]) { CURL *curl; CURLcode res; struct curl_slist *headers = NULL; // 初始化CURL curl = curl_easy_init(); if (!curl) { fprintf(stderr, "Failed to initialize curl"); return EXIT_FAILURE; } // 設置請求頭 headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // 設置請求URL curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api"); // 設置POST請求 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{ \"key\": \"value\" }"); curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); // 指定請求方法 // 發送請求并獲取響應 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(headers); return EXIT_SUCCESS; }
以上代碼中,我們使用了curl庫來進行HTTP請求。在設置請求時,我們需要將Content-Type設置為application/json,以告知服務器我們將發送JSON數據。在設置POST請求時,我們需要使用CURLOPT_POSTFIELDS選項來指定要發送的數據。在這個例子中,我們發送了一個JSON對象{ "key": "value" }。最后,我們使用curl_easy_perform函數發送請求,如果請求成功,我們將收到服務器的響應。