C語言是一門廣泛應用于系統(tǒng)程序設計和嵌入式設備開發(fā)等領域的編程語言,而對于在程序中獲取和處理 JSON 數據格式的需求,C語言通過使用第三方庫來實現。本文將講解如何在C語言中使用 post 方法獲取 JSON 數據。
#include <stdio.h> #include <stdlib.h> #include <curl/curl.h> #define MAX_LENGTH 4096 int main(void) { CURL *curl; CURLcode res; char *url = "http://example.com/api/getdata"; char *data = "username=test&password=12345"; char *response = (char*) malloc(MAX_LENGTH * sizeof(char)); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, response); res = curl_easy_perform(curl); if(res != CURLE_OK){ printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { printf("%s\n", response); } curl_easy_cleanup(curl); free(response); } return 0; } size_t write_callback(void *ptr, size_t size, size_t nmemb, char *data) { strcat(data, (char*) ptr); return size * nmemb; }
上述代碼通過使用 libcurl 庫,來執(zhí)行 post 方法并獲取 JSON 數據。首先,需要為需要訪問的 URL 和需要傳輸的數據定義相應的字符串。然后,創(chuàng)建一個指向這個 URL 的 CURL 對象,并為此對象設置相應的選項。其中,CURLOPT_POSTFIELDS
選項用于設置傳輸的數據,CURLOPT_WRITEFUNCTION
選項用于設置回調函數,將獲取的數據存儲在字符數組中。最后,執(zhí)行請求并釋放所占用的內存。
上一篇python 行和列