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

c 提交json

在C語(yǔ)言中,我們可以使用第三方庫(kù)或手動(dòng)編寫(xiě)代碼來(lái)提交JSON數(shù)據(jù)。下面我們將介紹兩種不同的方法。

方法一:使用第三方庫(kù)

#include#include#includeint main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
struct json_object *json_obj;
json_obj = json_object_new_object();
json_object_object_add(json_obj, "name", json_object_new_string("John"));
json_object_object_add(json_obj, "age", json_object_new_int(30));
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_object_to_json_string(json_obj));
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和Json-c兩個(gè)第三方庫(kù),Json-c用于創(chuàng)建JSON對(duì)象。我們首先創(chuàng)建一個(gè)JSON對(duì)象,并添加兩個(gè)屬性name和age,然后使用curl_easy_setopt函數(shù)設(shè)置URL和POST數(shù)據(jù),最后使用curl_easy_perform函數(shù)提交數(shù)據(jù)。

方法二:手動(dòng)編寫(xiě)代碼

#include#include#include#includeint main(void) {
struct sockaddr_in server_addr;
char *json = "{\"name\":\"John\",\"age\":30}\r\n";
char *request;
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
perror("socket");
return -1;
}
memset(&server_addr, 0, sizeof(struct sockaddr_in));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(80);
inet_pton(AF_INET, "example.com", &server_addr.sin_addr);
if (connect(sockfd, (const struct sockaddr *)&server_addr, sizeof(struct sockaddr_in)) == -1) {
perror("connect");
return -1;
}
asprintf(&request,
"POST /api HTTP/1.1\r\n"
"Host: example.com\r\n"
"Content-Type: application/json\r\n"
"Content-Length: %ld\r\n"
"\r\n"
"%s",
strlen(json), json);
if (send(sockfd, request, strlen(request), 0) == -1) {
perror("send");
return -1;
}
free(request);
close(sockfd);
return 0;
}

以上代碼使用了socket API來(lái)手動(dòng)編寫(xiě)HTTP請(qǐng)求。我們首先創(chuàng)建一個(gè)套接字,并通過(guò)connect函數(shù)連接到服務(wù)器。然后構(gòu)建HTTP POST請(qǐng)求,設(shè)置Content-Type為application/json,設(shè)置Content-Length為JSON數(shù)據(jù)長(zhǎng)度,發(fā)送請(qǐng)求到服務(wù)器。