Json-Rpc
如何從 C 呼叫 JSON RPC API?
如何從 C 進行 RPC 呼叫?
我的問題與以下問題有關:“如何使用 C# 呼叫 JSON RPC API? ”
用於處理 JSON 的 C API 是**Jansson**。C 應用程序,例如
libblkmaker
使用cURL進行呼叫,使用 Jansson 解釋 cURL 獲取的 JSON。例如基本用法(可以為比特幣 RPC 輕鬆修改),請參閱 Jansson 範例
github_commits.c
和相關教程。這是一個如何使用cURL進行 JSON RPC 呼叫的範例,Jansson 可以處理其輸出:
#include <stdlib.h> #include <curl/curl.h> int main() { CURL *curl = curl_easy_init(); struct curl_slist *headers = NULL; if (curl) { const char *data = "{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", \"method\": \"getinfo\", \"params\": [] }"; headers = curl_slist_append(headers, "content-type: text/plain;"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:8332/"); curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) strlen(data)); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); curl_easy_setopt(curl, CURLOPT_USERPWD, "bitcoinrpcUSERNAME:bitcoinrpcPASSWORD"); curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_TRY); curl_easy_perform(curl); } return 0; }
它將像cURL範例一樣列印如下內容:
{“result”:{“balance”:0.000000000000000,“blocks”:59952,“connections”:48,“proxy”:"",“generate”:false, “genproclimit”:-1,“difficulty”:16.61907875185736} ,“錯誤”:null,“id”:“curltest”}