在C語言中發(fā)送POST請(qǐng)求可以使用libcurl庫,它是一個(gè)處理URL的開源庫。在使用之前,需要先安裝 libcurl。
首先,需要包含相關(guān)的頭文件:
#include <stdio.h> #include <string.h> #include <curl/curl.h>
接下來就可以實(shí)現(xiàn)POST請(qǐng)求發(fā)送JSON數(shù)據(jù):
int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/post.php"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Content-Type:application/json"); 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(); return 0; }
上述代碼中,首先通過curl_global_init進(jìn)行初始化,然后使用curl_easy_init建立curl句柄。接下來就是設(shè)置 curl選項(xiàng),主要包括 URL地址、post請(qǐng)求方式、json數(shù)據(jù)、Content-Type等信息。設(shè)置完成后,可以使用curl_easy_perform執(zhí)行curl句柄。如果執(zhí)行失敗,則通過stderr打印錯(cuò)誤信息。
最后,使用curl_easy_cleanup進(jìn)行清除,釋放資源,最后使用curl_global_cleanup進(jìn)行全局清除。