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

c webapi接收json

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

在C語言中,想要使用WebAPI接收JSON數據需要使用第三方庫,例如libcurl和jansson。下面主要介紹如何使用libcurl接收JSON數據。

首先需要在Cmake中添加libcurl庫。

#添加libcurl庫
find_package(CURL REQUIRED)
if(CURL_FOUND)
include_directories(${CURL_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${CURL_LIBRARIES})
endif()

接著,需要在代碼中初始化一個CURL變量,并設置需要請求的URL地址和請求方式:

CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
curl_easy_setopt(curl, CURLOPT_POST, 1);
}

然后,需要設置請求頭和JSON數據:

//設置請求頭
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
//設置JSON數據
const char* json = "{\"name\": \"jim\", \"age\": 30}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json);

最后,執行請求并獲得服務器返回的JSON數據:

//執行請求
res = curl_easy_perform(curl);
//獲取返回JSON數據
char* buffer;
long size = 0;
curl_easy_getinfo(curl, CURLINFO_SIZE_DOWNLOAD, &size);//獲取下載數據大小
buffer = (char*) malloc(size + 1);
curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &buffer);//獲取數據類型
if(res == CURLE_OK) {
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &size);
//驗證接收的數據是否正確
if(res == CURLE_OK && buffer[size - 1] == '\n') {
buffer[size - 1] = '\0';
}
}

以上就是C WebAPI接收JSON數據的基本流程,可以根據具體的需求進行修改。