gpt4 book ai didi

json - 在clojure中访问POST json

转载 作者:行者123 更新时间:2023-12-04 14:30:27 25 4
gpt4 key购买 nike

编辑 - source code is on github如果你有兴趣。谢谢

我对如何访问已发布到 clojure 中的 url 的 json 数据感到有些困惑;我似乎无法让它发挥作用。

这是我的路线:

(cc/POST "/add" 
request
(str ": " request))

我不完全确定我必须用什么来代替 request - 我刚刚在网上看到一些博客并试图关注它,但无法让它工作。

这是我尝试发布的方式:(来自 fiddler)

fiddler posting data

注意:图中请求头端口不同;这是一个错误,我试图弄乱该数据以查看其内容,因此请忽略上图中的那部分

在 curl 中,我只是这样做:
curl -X POST -H "Content-Type: application/json" -d '{"foo":"bar","baz":5}' 
http://localhost:3005/add

看起来 clojure 根本没有收到我发布的 json 数据。

这是请求变量包含的内容:
: {:scheme :http, :query-params {}, :form-params {}, :request-method :post, 
:query-string nil, :route-params {}, :content-type "\"application/json\"",
:uri "/event", :server-name "localhost", :params {},
:headers {"user-agent" "Fiddler", "content-type" "\"application/json\"",
"content-length" "23", "host" "localhost:3005"},
:content-length 23, :server-port 3005, :character-encoding nil, :body #}

如您所见,所有 params空...

我正在使用 compojure 和 cheshire - 我可以将数据转换为 json 并将它们返回给 GET路线..我需要弄清楚如何传递json并将其转换为clojure数据..

谢谢

最佳答案

那是因为 :params 由处理“表单编码”主体的环形中间件填充。

您可以使用 ring-json 将您的应用程序包装到其他中间件中。它将解析 JSON 正文并相应地填充 :params 。 ( https://github.com/ring-clojure/ring-json )

关于json - 在clojure中访问POST json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708807/

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