Clojure: я использую http-kit для отправки запроса на сервер, но он не работает для меня
ПРИМЕЧАНИЕ. Я решил свою проблему. Однако потребовался ряд постепенных изменений. Если вы попали на эту страницу, не стесняйтесь проверить мой GitHub ниже, чтобы увидеть, как я сделал это приложение работает.
Я использую http-kit для отправки запроса в btc-china. Я хочу использовать их торговые API. Я могу сделать это просто отлично с Python, но по какой-то причине я продолжаю получать 401 с Clojure и http-Kit. Ниже приведен фрагмент кода, который может показать, что я не правильно использую http-kit. В дополнение к этому, вот github для моего полного кода, если вы хотите посмотреть на это: https://github.com/gilmaso/btc-trading Вот документы btc-china api: http://btcchina.org / апи-трейд-документация-ен
(def options {:timeout 2000 ; ms
:query-params (sorted-map :tonce tonce
:accesskey access-key
:requestmethod request-method
:id tonce
:method method
:params "")
:headers {"Authorization" auth-string
"Json-Rpc-Tonce" tonce}})
(client/post (str "https://" base-url) options
(fn [{:keys [status headers body error]}] ;; asynchronous handle response
(if error
(println "Failed, exception is " error)
(println "Async HTTP GET: " status))))
2 ответа
Цитата из примера на сайте bttchina:
# The order of params is critical for calculating a correct hash
Хеш-карты clojure неупорядочены, и вы не можете использовать литерал хеш-карты clojure для ввода, если порядок значим
У меня была очень похожая проблема с bittamp api. Решение было заменить :query-params
с :form-params
, Затем параметры отправляются в теле. Я заметил, что в вашем API вы отправляете вручную, затем в теле. Похоже на использование :form-params
может помочь и в вашем случае.