gpt4 book ai didi

clojure - Compojure 路由参数为空

转载 作者:行者123 更新时间:2023-12-03 01:28:33 24 4
gpt4 key购买 nike

尽管添加了换行参数等,我的 Compojure Web 应用程序 ([compojure "1.0.1"]) 始终收到空参数映射。代码示例如下:

(defroutes public-routes
(PUT "/something" {params :params}
(println (str "Params: " params))
(do-put-something params)))

(def myapp
(-> public-routes
ring-params/wrap-params))

(defn start-server []
(future (jetty/run-jetty (var myapp) {:port 8080})))

我尝试添加wrap-params、wrap-keyword-params和wrap-multipart-params,但是当我使用 httpie PUT 到端点时(或我的客户),我发现 params 始终为空。有人可以帮忙吗?

谢谢!

最佳答案

示例代码的唯一问题是它在路由主体中缺少环响应 HashMap 。解决方案是评估响铃响应而不是使用 println。当您在路由中调用 println 时,它会打印到服务器进程正在运行的标准输出,这与对 API 调用的响应无关。

(defroutes public-routes
(PUT "/something" {params :params}
{:status 200
:body (str "Params: " params)}))

这会生成一个 200 响应,其中 Params: {"foo""bar"} 作为响应正文。

我用它来测试你的 PUT 路线:

curl -X PUT -d "foo=bar" http://127.0.0.1:8080/something

关于clojure - Compojure 路由参数为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990634/

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