Clojure中的请求后主体是如何处理的?(http工具包,compojure)

Clojure中的请求后主体是如何处理的?(http工具包,compojure),clojure,compojure,http-kit,Clojure,Compojure,Http Kit,我有一个带有登录表单的页面和一个接受POST请求的服务器。这是服务器: (ns clj_server.core) (:require[org.httpkit.server:参考[run server]] [compojure.core:参考[defroutes POST]] [合成路线:作为路线] [ring.middleware.params:请参阅[wrap params]]) (defn printPostBody[请求] {:现状200 :标题{“内容类型”“文本/html”} :正文请

我有一个带有登录表单的页面和一个接受POST请求的服务器。这是服务器:

(ns clj_server.core)
(:require[org.httpkit.server:参考[run server]]
[compojure.core:参考[defroutes POST]]
[合成路线:作为路线]
[ring.middleware.params:请参阅[wrap params]])
(defn printPostBody[请求]
{:现状200
:标题{“内容类型”“文本/html”}
:正文请求})
(取消路线)
(POST“/登录”请求(printPostBody请求))

(route/notfound{:status 404:body“Page not found这看起来像是对请求映射的HTML生成的键值对的强制(例如,像在映射上迭代)@JochenBedersdorfer所以映射在响应中被转换成一组键值对,这意味着它只是一个嵌套映射?是的,这就是ring的优点。请求只是一个映射。根据您的ring配置,映射将被转换为JSON负载或任何您喜欢的内容。显然,默认情况下,它被视为一个seq。(有关更多信息,请参阅各种wrap-fn)尝试将字符串作为
:body
传递,例如
:body(clojure.pprint/pprint request)
。此外,将内容类型设置为
text/plain
。我可以想象,这会消除一些当前让您困惑的魔法。