如何用curl查询restful rails app?

时间:2009-08-02 17:29:41

标签: ruby-on-rails xml http curl rest

这是我的问题.. 资源:用户 方法:创建

我这样称呼curl:

curl -X POST -H 'Content-type: text/xml' -d '<xml><login>john</login><password>123456</password></xml>' http://0.0.0.0:3000/users

但是rails中的params hash看起来像这样:

{"xml"=> {"login"=>"luca", "password"=>"123456"}}

我希望它看起来像这样:

{"login"=>"luca", "password"=>"123456"}

如果我在url上传递参数(...?login = luca&amp; pas ....),我可以得到它,但那不好......

任何想法?

3 个答案:

答案 0 :(得分:3)

curl -X POST -d 'login=john&password=123456' http://0.0.0.0:3000/users

另请参阅:Stack Overflow: How do I make a POST request with curl

答案 1 :(得分:2)

curl -X POST -H 'Content-type: text/xml' -d '<login>john</login><password>123456</password>' http://0.0.0.0:3000/users

这对你有什么影响?

收到您的评论后,为什么不通过控制器中的params [:xml]访问它,而不是params [:login]和params [:password]?

@user = User.authenticate(params[:xml])

这会将登录名和密码传递给您的模型。

答案 2 :(得分:1)

嘿,我也有这个问题很长一段时间了。我发现你可以这样做 -

在initializers目录中创建一个新的defaults.rb:yourapp / config / initializers / defaults.rb

ActiveRecord::Base.include_root_in_json = false

现在应该从你的json中删除root。