c post 網頁獲取 json
c post 是一個開源社交媒體平臺,提供了很多的 API 接口,這里介紹一下如何通過 c post 的 API 接口獲取 json。
首先需要在 c post 上注冊一個賬號,然后在開發者頁面中創建一個應用。創建完應用后,可以獲取到一個 client_id 和 client_secret,這些都是通過 OAuth2 認證的必要參數。
接著,就可以使用 c post 的 API 接口來獲取 json 了。下面是一個示例代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> struct MemoryStruct { char *memory; size_t size; }; static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)userp; mem->memory = realloc(mem->memory, mem->size + realsize + 1); if (mem->memory == NULL) { printf("not enough memory (realloc returned NULL)\n"); return 0; } memcpy(&(mem->memory[mem->size]), contents, realsize); mem->size += realsize; mem->memory[mem->size] = 0; return realsize; } int main(void) { CURL *curl_handle; CURLcode res; struct MemoryStruct chunk; char request_url[100]; chunk.memory = malloc(1); chunk.size = 0; curl_global_init(CURL_GLOBAL_ALL); curl_handle = curl_easy_init(); // 通過 c post 的 API 接口獲取 json snprintf(request_url, 100, "https://api.cpost.cn/posts?client_id=%s&client_secret=%s", client_id, client_secret); curl_easy_setopt(curl_handle, CURLOPT_URL, request_url); curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk); curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); res = curl_easy_perform(curl_handle); if (res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { printf("%lu bytes retrieved\n", (unsigned long)chunk.size); printf("%s\n", chunk.memory); } curl_easy_cleanup(curl_handle); free(chunk.memory); curl_global_cleanup(); return 0; }
代碼中的 curl 庫用于發送 HTTP 請求,通過 c post 的 API 接口獲取數據。具體的獲取方式需要在請求 URL 中帶上 client_id 和 client_secret 參數。獲取到的 json 數據存儲在 chunk.memory 中,可以根據需要進行解析。