2013-08-26 92 views
1

以下(以及其他類似的)HTTP請求到谷歌的地理編碼API出來正確當我把它貼到我的瀏覽器谷歌地理編碼API HTTP請求被拒絕 - 紅寶石

http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false 

當我做紅寶石以下

url = URI.parse('http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false') 
req = Net::HTTP::Get.new(url.path) 
res = Net::HTTP.start(url.host, url.port) {|http| 
    http.request(req) 
} 
puts res.body 

我得到

{ 
"results" : [], 
"status" : "REQUEST_DENIED" 
} 

這是同樣的錯誤,我得到的時候沒有設置日例如,「傳感器」屬性,但這不是問題。

有什麼建議嗎?

回答

1

您需要使用#request_uri而不是#path,或者您的查詢參數將不包括在內:

url = URI.parse('http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false') 

url.path 
# => "/maps/api/geocode/json" 

url.request_uri 
# => "/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false" 
+0

你是一個紳士,一位學者!我從中得到HTTP請求代碼的SO問題甚至有一個評論,作爲一個警告,並猜測誰忽略了它?這傢伙!謝謝拉爾斯。 –