我的Compojure web应用程序(compojure "1.0.1")总是收到一个空的参数映射,尽管添加了wrap-params等。代码示例如下:
(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 (或我的客户端)添加到端点时,我发现params总是空的。有人能帮上忙吗?
谢谢!
发布于 2012-10-22 01:04:17
您的示例代码的唯一问题是在路由主体中缺少环响应散列映射。该解决方案被评估为环响应,而不是使用println。当您在路由中调用println时,它将打印到运行服务器进程的标准输出,这与对API调用的响应无关。
(defroutes public-routes
(PUT "/something" {params :params}
{:status 200
:body (str "Params: " params)}))这将生成一个以Params: {"foo" "bar"}作为响应体的200响应。
我正在使用这个来测试您的PUT路由:
curl -X PUT -d "foo=bar" http://127.0.0.1:8080/somethinghttps://stackoverflow.com/questions/12990634
复制相似问题