从字符串"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
获取一些东西让我在那里剩下的路吗?
答案 0 :(得分:2)
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"}
请注意,您使用的函数不属于公共API。
答案 1 :(得分:0)
我不确定您要尝试做什么,但使用ring.middleware.params/wrap-params
和ring.middleware.keyword-params/wrap-keyword-params
的惯用环方式。然后,请求映射将包含一个:param
键,其中包含您想要的内容。