我无法将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)
puts "hello world"
require 'httparty'
require 'json'
class Parse
include HTTParty
base_uri "api.parse.com:443"
headers "X-Parse-Application-Id" => "XXX", "X-Parse-REST-API-Key" => "YYY", "Content-Type" => "application/json"
end
option = {:channels => "Giants", :data => {:alert => "un mensaje de mierda"}}
puts Parse.post("/1/push", body: option.to_json)
)
我收到错误代码107,说无效的json。任何建议将不胜感激。
答案 0 :(得分:1)
我认为你只需要在第二个参数中将ruby结构序列化为JSON。 param应该是POST的字符串,而不是Ruby结构。
我认为这样可行(只有其他可能出现的问题是您是否会在编写代码时通过https连接):
data = {"channels": ['Giants'], "data": {alert: 'un mensaje '}}
puts Parse.post("/1/push", body: data.to_json)
。 。 。 Ruby数据结构中类似JSON的格式是 not JSON,
foo: "bar"
只是另一种Ruby(1.9+)说法
:foo => "bar"