Clojure 如何访问:compojure函数中的标题

Clojure 如何访问:compojure函数中的标题,clojure,http-headers,compojure,Clojure,Http Headers,Compojure,org.clojure/clojure-contrib“1.2.0” 环“1.1.8” compojure“1.1.5” 法规判例法“1.1.0” 另外,如何将POST请求的内容(即:正文)传递给“txn add”如果GET的第二个参数POST etc不是向量,它是请求的解构绑定表单。这意味着你可以做以下事情: (GET "/my/path" {:keys [headers params body] :as request} (my-fn headers body request)

org.clojure/clojure-contrib“1.2.0” 环“1.1.8” compojure“1.1.5” 法规判例法“1.1.0”


另外,如何将POST请求的内容(即:正文)传递给“txn add”

如果GET的第二个参数POST etc不是向量,它是
请求的解构绑定表单。这意味着你可以做以下事情:

(GET "/my/path"
   {:keys [headers params body] :as request} 
   (my-fn headers body request))

选择所需的
请求
部分。请参见和

可以在绑定中使用
:作为绑定中的
关键字指定整个请求映射,然后用于读取标题或正文:

(POST ["/api/v1/:stor/:txn/data/:file" :file #".*"] 
      [stor txn file :as req] 
      (my-handler stor txn file req))

作为一个整体,我对clojure有点陌生(刚开始两周)。因此,我不确定我是否理解你的答案。但是,我需要解析[stor txn file]的“url”部分,然后需要在
中传递:headers(POST[“/api/v1/:stor/:txn/data/:file”:file#“*”][stor txn file](txn添加stor txn file))
。所以,我需要结合向量参数和解构绑定形式,如何实现这一点。它发挥了神奇的作用(但对我来说,它仍然是一个黑魔法,因为我无法通过查看github上的compojure代码来理解这一点)。现在,我可以将所有参数(url components和header)传递给处理程序了。看看“向量绑定”的实现,我现在很清楚它是如何工作的。如果您找到了解决方案,请确保将答案标记为正确。
(GET "/my/path"
   {:keys [headers params body] :as request} 
   (my-fn headers body request))
(POST ["/api/v1/:stor/:txn/data/:file" :file #".*"] 
      [stor txn file :as req] 
      (my-handler stor txn file req))