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

c 接收psot過來的json數據格式

阮建安2年前8瀏覽0評論

在使用 C 語言開發接收 POST 請求時,我們有時需要接收 JSON 格式的數據。JSON 是輕量級的數據交換格式,它可以表示數組、對象、字符串、數字等數據類型。下面我們來看一下如何使用 C 語言接收 POST 過來的 JSON 數據。

首先,我們需要使用 libcurl 庫來發送 POST 請求并接收服務器返回的數據。在發送 POST 請求時,我們需要將請求頭設置為 "Content-Type: application/json",表示發送的數據是 JSON 格式的。下面是一個發送 POST 請求的示例代碼:

#include#includeint main(void)
{
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"name\":\"John\",\"age\":30}");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Content-Type: application/json");
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;
}

在接收 POST 請求時,我們也需要設置請求頭為 "Content-Type: application/json",然后讀取請求體中的 JSON 數據。下面是一個接收 POST 請求的示例代碼:

#include#include#include#include#define BUFSIZE 1024
int main(void)
{
char buf[BUFSIZE];
char *payload;
size_t length;
ssize_t bytes_read;
/* Read request headers */
while ((bytes_read = read(STDIN_FILENO, buf, BUFSIZE)) >0) {
buf[bytes_read] = '\0';
if (strcmp(buf, "\r\n") == 0)
break;
}
/* Read request payload */
length = atoi(getenv("CONTENT_LENGTH"));
payload = malloc(length + 1);
if (payload == NULL) {
fprintf(stderr, "Out of memory\n");
return 1;
}
bytes_read = read(STDIN_FILENO, payload, length);
if (bytes_read != length) {
fprintf(stderr, "Error reading request payload\n");
return 1;
}
payload[length] = '\0';
printf("Content-Type: text/plain\n\n");
printf("Received payload: %s\n", payload);
free(payload);
return 0;
}

以上是一個簡單的接收 POST 請求并輸出請求體中 JSON 數據的代碼示例。接下來,我們可以根據需要對 JSON 數據進行解析和處理,例如將其存儲到數據庫中或進行數據分析等操作。