gpt4 book ai didi

clojure - ring:将 http 请求的正文读取为字符串

转载 作者:行者123 更新时间:2023-12-02 21:31:27 26 4
gpt4 key购买 nike

在环形服务器内处理 http 请求时,请求数据的正文存储在请求 HashMap 中的键 :body 中。例如如下:

#object[org.eclipse.jetty.server.HttpInputOverHTTP 0x2d88a9aa "HttpInputOverHTTP@2d88a9aa"] 

如果我只对原始文本感兴趣,我如何读出这个对象?

最佳答案

您可以使用ring.util.request/body-string以字符串形式获取请求正文。

(body-string request) 

您需要记住 InputStream 只能读取一次,因此您可能更愿意用读取的 String 替换原始 :body ,这样您稍后可以再次访问它:

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

并添加中间件来包装您的处理程序:

(def app
(wrap-body-string handler))

关于clojure - ring:将 http 请求的正文读取为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37397531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com