在使用c語言發送post請求時,常用的數據格式是json。下面是一個使用curl庫發送json格式數據的例子:
#include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Content-Type: application/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; }
這段代碼的作用是向http://example.com發送一個POST請求,請求體為json格式的數據{"name":"John", "age":30, "city":"New York"}
在代碼中,我們使用了curl_easy_setopt函數來設置請求的URL、請求體、請求頭等信息。首先使用curl_easy_init函數創建一個CURL對象,然后使用curl_easy_setopt函數設置請求相關的參數,最后使用curl_easy_perform函數執行請求。如果請求成功,函數返回CURLE_OK,否則返回對應的錯誤碼。
在設置請求的時候,需要注意請求體的格式和Content-Type頭信息。在這個例子中,我們將Content-Type設為application/json,這表示請求體的數據格式為json。