如何使用curl发布到REST / JSON服务?

时间:2013-12-09 06:18:54

标签: json rest curl

我在

尝试了示例REST JSON服务

http://www.javacodegeeks.com/2013/04/spring-mvc-easy-rest-based-json-services-with-responsebody.html

并且JQuery客户端可以成功地将人物对象发布到服务中!雅虎!

我如何用cURL做同样的事情? 这是我的尝试:

curl -i -X POST -H "Content-Type: application/json; charset=UTF-8" -H "Accept: application/json" -d "{'name':'siegfried','age':26}" http://localhost:8080/api/person
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    71  100    42  100    29     39     26  0:00:01  0:00:01 --:--:--    40
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 42
Server: Jetty(6.1.25)

Saved person: Person [name=null, age=null]
Compilation finished at Sun Dec 08 22:14:05

它没有解析数据!如何解析我的json数据?

我一直在谷歌搜索几个小时,尝试了许多转义引号和撇号之类的组合,似乎没有任何效果。

由于

齐格弗里德

2 个答案:

答案 0 :(得分:2)

-d会将您的数据作为帖子发送,您无需声明POST

man curl提供了有关如何使用-d的说明。如果其他人需要它。

一个简单的Sinatra服务器http://www.sinatrarb.com,或类似的东西,可以用来调试你的卷发以及一个模拟服务器

问题是否存在于服务器端,如果您在本地主机上运行它,您应该可以访问它,对吧?

答案 1 :(得分:0)

我发现了问题! spring @ResponseBody使用JSON进行get,但使用URL编码进行POST。 查看http://codetutr.com/2013/04/09/spring-mvc-easy-rest-based-json-services-with-responsebody/的jQuery POST方法 为什么不一致?这让我疯了!

好吧,我还没有cURL命令。但我确实有java和groovy客户端,现在可以POST和GET。我很快就会有一个cURL。