Получить тело HTTP ответа в Clojure - PullRequest
0 голосов
/ 02 октября 2011

Я пытаюсь получить тело 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 перестать зависать? Во втором случае, который я перечислил выше, как я могу заставить обработчик возвращать тело ответа?

Спасибо за вашу помощь, Kevin

1 Ответ

0 голосов
/ 02 октября 2011

Во втором фрагменте кода вы не распечатали то, что вымазано.Должно быть так -

(println (slurp (string response)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...