谷歌地图API的不稳定行为

时间:2018-01-28 16:39:58

标签: google-maps

我收到了谷歌地图API的不稳定行为,但令人惊讶的是,我只是在我的单元测试中使用的一个例子,所有其他人都正常工作。

基本上我实现了对以下地址的get调用:

https://maps.googleapis.com/maps/api/geocode/json?language=es&address=La%20Asunci%C3%B3n,%20Herrera%20De%20Duero,%20Valladolid,%20Spain

所以,这是一个单元测试,我知道这个结果会给出一个错误输出,所以预期的行为如下:

{    “结果”:[],    “状态”:“ZERO_RESULTS” }

但是,有时会提供此结果,我将收到以下结果:

{'error_message':'您已超出此API的每日请求限额。我们建议您在Google Developers Console中注册密钥:https://console.developers.google.com/apis/credentials?project=_','results':[],'status':'OVER_QUERY_LIMIT'}

好吧,我想到的第一件事就是我超过了每日配额......但实际情况并非如此,正如我之前提到的那样,这是我的代码单元测试的一部分,并且在此调用后我还有另一个一个有效的...如果我等一段时间,让我们说,10分钟,回来并为我提供正确的输入。

所以基本上我遇到了不稳定的行为。我对这个论坛的问题是,如果有人遇到过同样的问题以及你如何克服这个问题,那么实施“重试”机制对我来说并没有用,而且我没有想法。

1 个答案:

答案 0 :(得分:2)

谷歌缓慢但稳步地弃用了对网络服务的无密钥访问。如果您不使用API​​密钥,则可以获得为Geocoding API Web服务建立的全局配额。此全局配额非常低,因此您可以不时看到错误消息。

生成API密钥并将其与单元测试请求一起使用。

https://developers.google.com/maps/documentation/geocoding/get-api-key

请注意,以前对Google Maps JavaScript API不推荐使用无密钥访问

https://maps-apis.googleblog.com/2016/06/building-for-scale-updates-to-google.html

我希望这有帮助!

更新

在2018年6月引入Google Maps Platform后,所有服务都不推荐使用无密钥访问。从现在开始,您必须将API密钥与Google Maps API一起使用。

  

从6月11日开始,您需要有效的API密钥和Google Cloud Platform结算帐户才能访问我们的核心产品。