Search code examples
jsonclojureclj-http

clj-http/get url {:as :json} doesn't work in script but in REPL


I'm experimenting with Clojure and Leiningen. I was successful in executing to following line in the REPL:

(print (:body (client/get "https://coinbase.com/api/v1/prices/spot_rate?currency=CAD" {:as :json}))

I created a project with lein new http. When I run the following lines witn lein run then the coercion to JSON doesn't work. It simply prints a correct JSON string.

(ns http.core
  (:require [clj-http.client :as client])
  (:use clojure.pprint))

(defn -main
  []
  (print
    (:body
      (client/get "https://coinbase.com/api/v1/prices/spot_rate?currency=CAD" {:as :json}))

the output of the script is

{"amount":"306.89","currency":"CAD"}

Any idea what's wrong?


Solution

  • I don't know exactly what changed, but [clj-http "1.1.2"] has the behavior you want.