clojureレストクライアント

clojureRESTクライアントは次の2つのパッケージを使用できます

(require '[clj-http.client :as client])
(require '[cheshire.core :as json])

次のようにjsonテストコードを取得します。

(let [url "http://headers.jsontest.com//"
      response (client/get url {
    
    :as :reader})]
  (with-open [reader (:body response)]   
    (let [pokemons (json/parse-stream reader true) ] 
      (println pokemons)
      (println  (get-in pokemons [:X-Cloud-Trace-Context ]))
      (println  (get-in pokemons [':X-Cloud-Trace-Context ]))
            (println  (select-keys pokemons [:X-Cloud-Trace-Context :Host]))
  
  (println (class   pokemons   ))
      )))

clj-http.clientのサポート

  • 非同期
  • キャッシュ
  • http dns、つまり、解決にデフォルト以外のdnsを使用する
  • マルチスレッド
  • クライアントの再利用、つまり、同じクライアントを使用した複数の呼び出し
  • クッキー

チェシャーマップとjsonを変換するときは、キーがデフォルトで「:」で始まるかどうかに注意してください。つまり、キーを取得するには:strを使用し、「:」で始まるにはtrueパラメーターを使用する必要があります。次のテストコードのキーの出力。

(def john-smith {
    
    :f-name "John"
                 :l-name "Smith"
                 :phone "555-555-5555"
                 :address {
    
    :street "452 Lisp Ln."
                           :city "Macroville"
                           :state "Kentucky"
                           :zip "81321"}
                 :hobbies ["running" "hiking" "basketball"]
                 :company "Functional Industries"
                 :title "Sith Lord of Git"})

(println (json/encode   john-smith   ))    
(println (json/generate-string   john-smith   ))    

(println (keys ( json/parse-string    (json/generate-string   john-smith  )  ) ))  

(println (keys ( json/parse-string    (json/generate-string   john-smith  ) true) ))  

(println (json/generate-string   ( json/parse-string    (json/generate-string   john-smith  )) ))  

おすすめ

転載: blog.csdn.net/weixin_40455124/article/details/115274523