【发布时间】:2013-01-20 10:55:24
【问题描述】:
编辑 - source code is on github 如果您有兴趣。谢谢
对于如何访问已发布到 clojure 中的 url 的 json 数据,我有点困惑;我似乎无法让它工作。
这是我的路线:
(cc/POST "/add"
request
(str ": " request))
我不完全确定我必须用什么代替 request - 我刚刚在网上看到一些博客并尝试关注它,但无法让它发挥作用。
这是我尝试发帖的方式:(来自fiddler)
注意:图片中的请求头端口不同;这是一个错误,我试图弄乱该数据以查看其内容,因此请忽略上图中的那部分
在 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 数据。
谢谢
【问题讨论】:
-
发布的数据应该是
{"foo" : "bar" , "baz" : 5}而不是'{"foo" : "bar" , "baz" : 5}' -
@Ankur,试过了,没什么区别
标签: json post clojure compojure