ruby-on-rails - Google Geocoding API request_denied

标签 ruby-on-rails http httprequest google-geocoder

我正在尝试通过我的 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/

相关文章:

ruby-on-rails - Rails : uniq vs. 不同

java - Jsoup 在 Google Maps API 上返回错误 400

ruby-on-rails - 使用 capybara 和网络模拟 rails 应用程序进行测试

ruby-on-rails - Rails 嵌套资源未知属性错误

http - 我是否应该根据协议(protocol)前缀区分 OpenID? http 与 https

带有 http 和 https 路由的 node.js

CSS 速度优化 - 为什么多个文件比一个文件更好?

JavaScript promise 返回

javascript - 如何接收 Twilio 状态回调

mysql - 在关联Rails中的多个记录中选择特定记录