我正在使用foursquare API搜索特定的地点。我使用以下网址: https://api.foursquare.com/v2/venues/venue_id?oauth_token=Access_token
该网站的回复是json。
然后我使用以下代码尝试使用ruby解析此json响应:
require 'rest-open-uri'
require 'json'
url = 'https://api.foursquare.com/v2/venues/venue_id?oauth_token=Access_token'
buffer = open(url, "UserAgent" => "Ruby-Wget").read
result = JSON.parse(buffer)
以下是我得到的错误代码:
C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:678:在connect': SSL_con
nect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verif
y failed (OpenSSL::SSL::SSLError)
from C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:678:in
集团
k in connect'
来自C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/timeout.rb:44:in timeou
t'
from C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/timeout.rb:89:in
timeou
T'
此错误代码是否意味着我无法打开此网址,因为它以“https”开头?有什么方法可以用来打开这个url并解析json响应吗?
提前致谢!
答案 0 :(得分:16)
这应该有效:
gem install httparty
然后
require 'httparty'
require 'json'
response = HTTParty.get("https://api.foursquare.com/v2/venues/vid",
:query => {:oauth_token => "abc"})
json = JSON.parse(response.body)
答案 1 :(得分:-3)
RUBY区分大小写。 要求'json'#json必须是小写
JSON.parse()来
例如
JSON.parse(response.body)#JSON必须全部为大写