首先发布在这里,所以你知道,好吗?
我在服务器上使用JSON Feed在Dashing( http://dashing.io/)中设置仪表板,如下所示:
{
"error":0,
"message_of_the_day":"Welcome!",
"message_of_the_day_hash":"a1234567890123456789012345678901",
"metrics":{
"daily":{
"metric1":"1m 30s",
"metric2":160
},
"monthly":{
"metric1":"10m 30s",
"metric2":"3803"
}
},
我一直在尝试从Feed中获取数据,并且已经设法通过Python实现了这一点,没有任何问题:
import json
import urllib2
data = {
'region': "Europe"
}
req = urllib2.Request('http://192.168.1.2/info/handlers/handler.php')
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json.dumps(data))
print response.read()
然而,我还没有成功,并且在Ruby中遇到了很多错误。 有人能够指出我在Ruby中解析这个问题的正确方向吗? 我尝试编写一个基本脚本(保持简单且不在Dashing之外)不会提取任何数据。
#!/usr/bin/ruby
require 'httparty'
require 'json'
response = HTTParty.get("http://192.168.1.2/info/handlers/handler.php?region=Europe")
json = JSON.parse(response.body)
puts json
答案 0 :(得分:1)
在python代码中,您发送JSON并添加标头。我敢打赌,在红宝石中这样做是有意义的。下面的代码是未经测试的,因为我无法测试它,但它应该引导您进入正确的方向:
#!/usr/bin/ruby
require 'httparty'
require 'json'
response = HTTParty.post(
"http://192.168.1.2/info/handlers/handler.php",
headers: {'Content-Type', 'application/json'},
query: { data: { 'region' => "Europe" } }
# or maybe query: { 'region' => "Europe" }
)
puts response.inspect