clojure - 从环中获取URL参数

标签 clojure ring

从字符串 "http://www.youtube.com/watch?v=P76Vbsk_3J0" 开始,我想获取 {:v P76Vbsk_3J0}

我即将到达:

(#'ring.middleware.params/parse-params "http://www.youtube.com/watch?v=P76Vbsk_3J0" "UTF-8")
=> {"http://www.youtube.com/watch?v" "P76Vbsk_3J0"}

(clojure.walk/keywordize-keys {"http://www.youtube.com/watch?v" "P76Vbsk_3J0"})
=> {:http://www.youtube.com/watch?v "P76Vbsk_3J0"}

我可以从ring中获取一些东西来完成剩下的旅程吗?

最佳答案

ring.middleware.params/parse-params 期望仅接收查询参数字符串,因此您需要删除 ? 之前的所有内容(包括 ?),类似这样的内容工作:

(#'ring.middleware.params/parse-params
  (second (.split "http://www.youtube.com/watch?v=P76Vbsk_3J0" "\\?"))
  "UTF-8")
;=> {"v" "P76Vbsk_3J0"}

请注意,您使用的函数不属于公共(public) API。

关于clojure - 从环中获取URL参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052565/

相关文章:

clojure - 没有码头的环/组合

compiler-construction - Lisp/Clojure DSL 的函数与符号

javascript - 在 Javascript 中将 Clojure 脚本解析为 JSON

java - 在 Clojure 或 Java 中使用正则表达式时,如何使用命名捕获组?

unit-testing - Clojure 测试 : testing the negation of an assertion

redirect - Ring.util.response/redirect 不重定向站点

clojure - 您如何使用 Compojure/Ring 的 session ?

android - 检查铃声和通知音量是否关联? (安卓)

java - 使用 Kubernetes Docker 的客户端证书调用端点时出现 SunCertPathBuilderException

clojure - 我们可以用某种形式的规范edn响应来响吗?