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

c 怎么傳輸json數據

傅智翔2年前7瀏覽0評論

在C語言中,我們需要通過網絡將JSON數據傳輸到其他設備或服務器。一種常見的方法是將JSON數據作為HTTP請求的正文體來傳輸。以下是一個使用libcurl庫將JSON數據作為HTTP POST請求發送的示例代碼:

#include#includeint main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://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);
}
return 0;
}

這個例子中,我們設置了POST請求的URL和JSON數據正文體。我們還設置了HTTP頭的Content-Type字段為application/json,這是告訴服務器我們發送的正文體是JSON數據。最后,我們使用curl_easy_perform()函數執行請求。

如果你需要接收JSON數據,你需要創建一個HTTP服務器來接收請求,并解析請求消息的正文體。在C語言中,一個常見的HTTP服務器是libmicrohttpd庫。以下是一個使用libmicrohttpd庫創建HTTP服務器,接收JSON數據的示例代碼:

#include#include#includeint answer_to_connection (void *cls,
struct MHD_Connection *connection,
const char *url, const char *method, 
const char *version, const char *upload_data,
size_t *upload_data_size, void **con_cls)
{
if (0 == strcmp (method, "POST")) {
struct MHD_Response *response;
int ret;
response = MHD_create_response_from_buffer (strlen ("{\"success\":true}"),
(void*) "{\"success\":true}", MHD_RESPMEM_PERSISTENT);
ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
MHD_destroy_response (response);
return ret;
} else {
return MHD_NO;
}
}
int main ()
{
struct MHD_Daemon *daemon;
daemon = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY, 8080, NULL, NULL,
&answer_to_connection, NULL, MHD_OPTION_END);
if (NULL == daemon) return 1;
getchar ();
MHD_stop_daemon (daemon);
return 0;
}

在這個例子中,我們創建了一個監聽8080端口的HTTP服務器,并在answer_to_connection()函數中接收POST請求。我們從正文體中解析JSON數據,然后執行所需的操作。在本例中,我們僅僅返回了一個內容為{"success":true}的JSON響應。在實際應用中,你需要根據自己的需求返回不同的JSON響應。