Ruby on rails 将curl转换为ruby等价物

Ruby on rails 将curl转换为ruby等价物,ruby-on-rails,ruby,json,curl,httparty,Ruby On Rails,Ruby,Json,Curl,Httparty,我无法将curl转换为ruby脚本。基本上,我正在尝试使用parse.com RESTful api。这是卷发 curl -X POST \ -H "X-Parse-Application-Id: XXX" \ -H "X-Parse-REST-API-Key: YYY" \ -H "Content-Type: application/json" \ -d '{ "channels": [ "Giants", "Mets" ], "data": {

我无法将curl转换为ruby脚本。基本上,我正在尝试使用parse.com RESTful api。这是卷发

curl -X POST \
-H "X-Parse-Application-Id: XXX" \
-H "X-Parse-REST-API-Key: YYY" \
-H "Content-Type: application/json" \
-d '{
   "channels": [
     "Giants",
     "Mets"
   ],
   "data": {
     "alert": "test message"
   }
 }' \
 https://api.parse.com/1/push
这就是我一直试图做的(使用HttParty)

)


我得到一个错误代码107,表示json无效。任何建议都将不胜感激。

我认为您只需要在第二个参数中将ruby结构序列化为JSON。参数应该是要发布的字符串,而不是Ruby结构

我认为这会起作用(我能看到的唯一其他可能的问题是,在编写代码时,您是否会通过https进行连接):

。Ruby数据结构中类似JSON的格式不是JSON

这只是Ruby(1.9+)的另一种说法

:foo => "bar"

为什么不使用宝石呢?它是curl库的Ruby接口。您的
通道
值不是curl请求中的数组-可能是服务需要一个数组,并且由于编辑了注释而抛出了一个非常糟糕的错误。我添加了端口443,这样它就可以通过SSL,但是仍然存在JSONY无效的问题。现在,您的Ruby结构与curl示例中的结构不同。尝试在“巨人”的周围放上方括号,例如[“巨人”,使其成为一个数组。
data = {"channels": ['Giants'], "data": {alert: 'un mensaje '}}
puts Parse.post("/1/push", body: data.to_json)
foo: "bar"
:foo => "bar"