ruby-on-rails – 如何使用rails将CURL中的params解析为JSON或XM
发布时间:2020-12-17 03:52:37 所属栏目:百科 来源:网络整理
导读:如何让rails将params解析为 JSON或XML而不是字符串?我正在使用rails 3.0.7. 这就是我想要发生的事情. Parameters: {"user"={"email"="user@blah.com","password"="[FILTERED]"}} 这是发生了什么 # controllerdef create logger.debug paramsend# curl from
如何让rails将params解析为
JSON或XML而不是字符串?我正在使用rails 3.0.7.
这就是我想要发生的事情. Parameters: {"user"=>{"email"=>"user@blah.com","password"=>"[FILTERED]"}} 这是发生了什么 # controller def create logger.debug params end # curl from command line curl -i -H 'Content-Type:application/xml' -H 'Accept:application/xml' -X POST -d "<user><email>user@blah.com</email><password>password</password></user>" http://localhost:3000/api/v1/sessions.xml # response Started POST "/api/v1/sessions" for 127.0.0.1 at 2011-05-14 02:16:23 -0700 Processing by Api::V1::SessionsController#create as XML Parameters: {"<user><email>user@blah.com</email><password>password</password></user>"} {"<user><email>user@blah.com</email><password>password</password></user>","action"=>"create","controller"=>"api/v1/sessions","format"=>"xml"} JSON也是如此. 解决方法
HTTP POST通常是名称/值对.
Rails正在尽最大努力找出你传递给它的东西并把它变成一个params哈希,但它确实没有意义. 您可以直接访问该请求: def create string = request.body.read # if string is xml object = Hash.from_xml(string) # elsif string is JSON object = ActiveSupport::JSON.decode(string) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |