2011-10-02 4 views
0

J'essaie d'obtenir le corps d'une réponse HTTP avec Clojure, avec un gestionnaire. Cependant, la fonction http-agent se bloque sans retour.Obtenir le corps de la réponse HTTP dans Clojure

Cela affichera la réponse, puis raccrochez sans retour:

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

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

Ce imprimera "Handling...", puis bloquer indéfiniment:

(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)) 

Comment puis-je obtenir la méthode agent HTTP pour arrêter pendaison? Dans le second cas que j'ai énuméré ci-dessus, comment puis-je obtenir que le gestionnaire renvoie le corps de la réponse?

Merci pour votre aide, Kevin

Répondre

0

Dans le deuxième morceau de code que vous n'avez pas imprimé ce qui est slurped. Devrait être comme ça -

(println (slurp (string response))) 
+0

Cela ne résout pas le problème de suspension ... –

+0

ne pend pas pour moi. – Pranav

Questions connexes