#clojure
#clojure
Вопрос:
Я пытаюсь получить тело HTTP-ответа с помощью Clojure, с помощью обработчика. Однако 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:
Во втором фрагменте кода вы не распечатали то, что было выбрано. Должно быть так —
(println (slurp (string response)))