2016-05-23 18 views

答えて

4

ring.util.request/body-stringを使用すると、要求本文をStringとして取得できます。

あなたはあなたが後で再度アクセスすることができますので、代わりに読ん Stringで元 :bodyを交換好むかもしれないので、 InputStreamは一度しか読み取ることができることを覚えておく必要があり
(body-string request) 

(defn wrap-body-string [handler] 
    (fn [request] 
    (let [body-str (ring.util.request/string-body request)] 
     (handler (assoc request :body body-str))))) 

をそして、あなたのミドルウェアを追加あなたのハンドラをラップする:

(def app 
    (wrap-body-str handler)) 
0

はリング要求の:bodyはのインスタンスでなければなりません。 これで、reader + slurpを使用して文字列を取り出すことができます。

(defn is->str [is] 
    (let [rdr (clojure.java.io/reader is)] 
    (slurp rdr))) 

使用法:(is->str (:body request))

関連する問題