2015-10-24 51 views
1

我有一個運行在端口8545上的本地服務器,它偵聽JSON-RPC請求。我可以用這樣的捲曲調用它:如何從Clojure進行json-rpc調用?

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xf54c19d9ef3873bfd1f7a622d02d86249a328f06", "latest"],"id":1}' http://localhost:8545 

Clojure的等效調用是什麼?我是否需要將一些外部庫添加到project.clj

回答

2

我認爲你應該嘗試http-kit。 你也將需要爲JSON(data.jsoncheshire)一些圖書館

所以添加到您的project.clj以下依存關係:

  • [HTTP-KIT 「2.1.18」]
  • [org.clojure/data.json 「0.2.6」]

並嘗試這個

(ns your-ns 
    (:require [org.httpkit.client :as http] 
      [clojure.data.json :as json])) 

(let [url "http://localhost:8545" 
     body (json/write-str 
      {:jsonrpc "2.0" 
       :method "eth_getBalance" 
       :params ["0xf54c19d9ef3873bfd1f7a622d02d86249a328f06" "latest"] 
       :id 1}) 
     options {:body body} 
     result @(http/post url options)] 
    (prn result))