在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數據的基本流程,可以根據具體的需求進行修改。
上一篇form設置json
下一篇vue商城商品界面