编辑 - 如果您感兴趣,源代码在GitHub上。谢谢。
我不确定在
这是我正在尝试发布的方式:(来自fiddler)
注:图片中请求头端口不同;这是一个错误,我尝试修改该数据以查看它说了什么,请忽略上面图片中的此部分。
在curl中,我只是这样做:
我有点困惑,不知道如何在Clojure中访问已发布到URL的JSON数据;我似乎无法使其正常工作。
这是我的路由:
(cc/POST "/add"
request
(str ": " request))
我不确定在
request
的位置要放什么 - 我只是在网上看到一些博客并试图跟随,但无法使其工作。这是我正在尝试发布的方式:(来自fiddler)
![fiddler posting data](https://istack.dev59.com/WXYPy.webp)
在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