我正在尝试通过我的 Rails 应用程序使用 Google Geocoding API 对一批大约 400 个地址进行地理编码。
在我的一个 Controller 中我有这些行
require "net/http"
require "uri"
uri = URI.parse("http://maps.googleapis.com/maps/api/geocode/json?")
response = Net::HTTP.post_form(uri, {"address" => '5032-forbes-ave', 'sensor' => 'false'})
但我总是从那里得到 ""status": "REQUEST_DENIED"。
有谁知道我为什么会收到这个消息,或者是否有办法让我可以准确地看到正在发送的 HTTP 请求,以便我可以尝试调试它?
更新:这是我尝试发出的请求,如果我从浏览器执行此操作,我会从 api 获得正常响应:http://maps.googleapis.com/maps/api/geocode/json?address=5032-forbes-ave&sensor=false
最佳答案
您正在发布请求,但在您的浏览器中您使用的是 GET。
所以这个工作完美:
uri = URI.parse("http://maps.googleapis.com/maps/api/geocode/json?address=5032-forbes-ave&sensor=false")
response = Net::HTTP.get(uri)
响应是字符串本身,它包含一些 JSON(我不是 Google API 的专家)
关于ruby-on-rails - Google Geocoding API request_denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799740/