在進(jìn)行web開發(fā)過程中,post請求是相當(dāng)常見的操作。假如我們想要進(jìn)行一個(gè)post請求,請求內(nèi)容包含多個(gè)參數(shù),并且參數(shù)類型是json格式,應(yīng)該怎么操作呢?下面我來介紹一下使用c語言實(shí)現(xiàn)post請求,參數(shù)類型為json格式且請求包含多個(gè)參數(shù)的步驟。
#include#include #include #include int main(void){ CURL *curl; CURLcode res; char *postdata = "{\"name\":\"Tom\",\"age\":20,\"city\":\"Shanghai\"}"; //這里是請求的json數(shù)據(jù) curl = curl_easy_init(); if(curl) { struct curl_slist *headers = NULL; //這里定義一個(gè)headers headers = curl_slist_append(headers, "Content-Type: application/json"); //將Content-Type設(shè)置為application/json headers = curl_slist_append(headers, "Accept: application/json"); //設(shè)置Accept為application/json curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/api/submit"); //設(shè)置請求的URL curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); //設(shè)置自定義請求頭 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata); //將postdata作為請求體 curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(postdata)); //設(shè)置請求體的大小 res = curl_easy_perform(curl); //發(fā)出請求 if(res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_easy_cleanup(curl); } return 0; }
使用c語言編寫post請求需要用到libcurl庫。具體操作是創(chuàng)建一個(gè)CURL型指針,添加請求頭,設(shè)置請求體、URL、大小等參數(shù),最后發(fā)出請求即可。另外,我們也需要注意設(shè)置請求頭的Content-Type為application/json,Accept也應(yīng)該設(shè)置成application/json,這樣服務(wù)端才知道我們將請求數(shù)據(jù)作為json格式處理。