欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 使用header傳遞json

林子帆1年前8瀏覽0評論

在C語言中,使用header傳遞JSON是一種非常常見的做法。通過設置HTTP請求的header部分,我們可以把JSON數(shù)據(jù)傳遞給服務器或者從服務器獲取JSON數(shù)據(jù)。

#include#includestatic size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
((char*)userdata)[0] = '\0';
strncat(userdata, ptr, size * nmemb);
return size * nmemb;
}
int main() {
CURL *curl;
CURLcode res;
struct curl_slist *headers = NULL;
char *json = "{\"msg\":\"Hello world!\"}";
char buffer[4096] = "";
curl_global_init(CURL_GLOBAL_DEFAULT);
headers = curl_slist_append(headers, "Expect:");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:80"); //設置URL地址
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json); //設置JSON數(shù)據(jù)
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); //設置HTTP header
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); //設置寫入數(shù)據(jù)的回調函數(shù)
curl_easy_setopt(curl, CURLOPT_WRITEDATA, buffer); //設置回調函數(shù)的userdata參數(shù)
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);
printf("%s\n", buffer);
}
curl_global_cleanup();
return 0;
}

在上面的代碼中,我們首先初始化CURL庫,然后設置HTTP請求的header部分。在本例中,我們將Content-Type設置為application/json,以表明我們要傳遞的是JSON數(shù)據(jù)。

接下來,我們設置一些其他選項,例如URL地址、要傳遞的JSON數(shù)據(jù)、寫入數(shù)據(jù)的回調函數(shù)等等。

最后,我們使用curl_easy_perform()函數(shù)來發(fā)送HTTP請求,然后使用回調函數(shù)來處理服務器返回的數(shù)據(jù)。

總的來說,使用header傳遞JSON是一種很方便的做法,可以方便地在C語言中與服務器進行數(shù)據(jù)交互。