在Clojure中获取HTTP响应的主体

时间:2011-10-02 04:51:59

标签: clojure

我正在尝试使用Clojure获取HTTP响应的主体,并使用处理程序。但是,http-agent函数会挂起而不返回。

这将打印响应,然后挂起而不返回:

(use '[clojure.contrib.http.agent])

(def text (result (http-agent "http://jsonip.com"
                   :method "GET")))
(println text)

这将打印"Handling...",然后无限期挂起:

(use '[clojure.contrib.http.agent])

(defn do-stuff
  "handler"
  [response]
  (do 
    (println "Handling...")
    (slurp (string response))))

(def text (result (http-agent "http://jsonip.com"
  :method "GET"
  :handler do-stuff)))

(println (str "text! " text))

如何让http-agent方法停止挂起?在上面列出的第二种情况中,如何让处理程序返回响应体?

感谢您的帮助, 凯文

1 个答案:

答案 0 :(得分:0)

在第二段代码中,你没有打印出什么是诽谤。应该是这样的 -

(println (slurp (string response)))