在使用c語言進行HTTP請求的過程中,常常需要使用POST方法來傳遞數(shù)據(jù),而Json是一種輕量級的數(shù)據(jù)交換格式,因此在傳遞數(shù)據(jù)時,我們可以將數(shù)據(jù)封裝為Json格式進行傳輸。
下面是使用c語言進行POST Json請求的示例代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; char *url = "http://test.com/api/test"; char *post_data = "{\"name\":\"test\",\"age\":18}"; struct curl_slist *headers = NULL; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { headers = curl_slist_append(headers, "Accept: application/json"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data); curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(post_data)); 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庫來進行HTTP請求,首先需要對curl進行初始化,然后設置請求頭和請求參數(shù),最后進行HTTP請求并處理返回結果。
需要注意的是,請求頭中需要設置Content-Type為application/json,請求參數(shù)需要以Json格式傳遞并設置請求參數(shù)長度,這樣才能正確地進行POST Json請求。