以下Ruby代码导致'peer'重置连接'
request = 'https://maps.googleapis.com/maps/api/place/search/json?location=23.001202,120.191889&radius=50&sensor=false&key=MY_GOOGLE_API_ACCESS_KEY'
puts Net::HTTP.get(URI.parse request)
但是同样的HTTP请求在浏览器中有效。什么可能导致差异?
自应答: 刚刚找到了使用Ruby HTTP客户端的解决方案 - Patron
require 'patron'
sess = Patron::Session.new
sess.base_url = "https://maps.googleapis.com/"
res = sess.get "maps/api/place/search/json?location=23.001202,120.191889&radius=50&sensor=false&key=GOOGLE_PLACE_API_KEY"
puts res.body
答案 0 :(得分:1)
这可能有点过分但我只是这样做了:
require 'rubygems'
require 'open-uri'
require 'json'
require "awesome_print"
baseurl = "https://maps.googleapis.com/maps/api/place/search/json?"
lat = 51.50364209455692.to_s
lng = -0.10880472473149894.to_s
radius = 500.to_s
type = "bar"
sensor = "true"
key = "MYKEY"
combine = baseurl + 'location=' + lat + ',' + lng + '&' + 'radius=' + radius + '&' + "types=" + type + '&' + "sensor=" + sensor + '&' + "key=" + key
url = combine
result = open(url) do |file|
JSON.parse(file.read)
end
这个商店是一个JSON哈希,你可以做任何你想做的事情!
此外,我一直在对Local Search API进行大量研究 - Google Places在我看来并不是那么好 - 您可以从SimpleGeo获得更多结果(免费)
由于