色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 網絡通訊json post

老白2年前9瀏覽0評論

C語言是一種強大的編程語言,可以進行各種各樣的任務,包括網絡通訊。JSON是一種常用的數據交換格式,它易于閱讀和編寫,并且在網絡通訊中使用廣泛。以下是在C語言中使用JSON POST進行網絡通訊的示例代碼。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include <jansson.h>
void post_json(const char *url, const char *json) {
CURL *curl;
CURLcode res;
struct curl_slist *headers = NULL;
char *data = NULL;
long http_code = 0;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
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, json);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, strlen(json));
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
goto exit;
}
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
printf("HTTP code: %ld\n", http_code);
exit:
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
}
int main() {
const char *url = "http://example.com/api";
json_t *obj = json_object();
json_t *val = json_string("value");
json_object_set(obj, "key", val);
char *json = json_dumps(obj, JSON_INDENT(2));
printf("Request:\n%s\n", json);
post_json(url, json);
free(json);
json_decref(val);
json_decref(obj);
return 0;
}

在上面的代碼中,post_json()函數定義了使用CURL發送JSON POST請求的邏輯。它采用libcurl庫作為HTTP客戶端,并傳遞URL和JSON數據作為參數。函數將Content-Type標頭設置為application/json,并將JSON數據設置為請求正文。然后它執行HTTP請求,并檢查HTTP響應代碼。

在主程序中,我們首先創建一個JSON對象,將其編碼為字符串,并將其打印為請求正文。然后,我們調用post_json()函數并傳遞URL和JSON數據。最后,我們釋放所有分配的內存。

在上述例子中,我們使用了jansson庫來編碼和解碼JSON數據。除此之外,還有許多其他的JSON庫可供選擇,如rapidjson和cJSON等。