在Clojure中正确签署GDAX请求的方法如下:
- 导入所需的命名空间和库:(require '[crypto.macros :as crypto]
'[clojure.java.io :as io]
'[clojure.data.json :as json]
'[clj-http.client :as http])
- 创建一个函数来生成GDAX请求的签名:(defn generate-gdax-signature [api-secret method path body timestamp]
(let [message (str timestamp method path body)
hmac (crypto/hmac-sha256 (.getBytes api-secret) (.getBytes message))]
(crypto/hex-str hmac)))
- 创建一个函数来发送GDAX请求:(defn send-gdax-request [api-key api-secret api-passphrase method path body]
(let [timestamp (str (/ (System/currentTimeMillis) 1000))
signature (generate-gdax-signature api-secret method path body timestamp)
headers {"CB-ACCESS-KEY" api-key
"CB-ACCESS-SIGN" signature
"CB-ACCESS-TIMESTAMP" timestamp
"CB-ACCESS-PASSPHRASE" api-passphrase}]
(http/request {:method method
:url (str "https://api.gdax.com" path)
:headers headers
:body body
:as :json})))
- 调用
send-gdax-request
函数发送GDAX请求:(let [api-key "YOUR_API_KEY"
api-secret "YOUR_API_SECRET"
api-passphrase "YOUR_API_PASSPHRASE"
method "GET"
path "/accounts"
body ""]
(send-gdax-request api-key api-secret api-passphrase method path body))
以上代码示例中,generate-gdax-signature
函数用于生成GDAX请求的签名,send-gdax-request
函数用于发送GDAX请求,并在请求头中包含签名和其他必要的信息。你需要将YOUR_API_KEY
、YOUR_API_SECRET
和YOUR_API_PASSPHRASE
替换为你自己的GDAX API凭证。
这样,你就可以在Clojure中正确签署GDAX请求了。请注意,这只是一个简单的示例,实际应用中可能需要根据GDAX的API文档和要求进行更复杂的签名和请求处理。