Android:在调用https://maps.googleapis.com/maps/api/geocode/xml时禁止访问HTTP 403

时间:2015-03-16 14:22:42

标签: java android web-services google-maps google-maps-api-3

我自2012年开发了Android应用程序。从现在开始,我已经使用免费的网络服务api v3进行地理编码,没有API密钥,因此我们对每个IP的请求限制为2,500而不是对于没有问题的KEY:

https://maps.googleapis.com/maps/api/geocode/xml

所有工作都运行良好,直到这段时间,有时我的一些用户软件错误403 - 在此Web服务器调用期间被禁止。

Google是否更改了使用其网络服务的内容?

最终我可以使用Android Framework的Geocoder类。

但我还有另一个网络服务:

https://maps.googleapis.com/maps/api/directions/xml

这个网络服务也可能遭遇403错误吗?到目前为止,我不知道,因为如果我在地理编码中收到403错误,我就不会调用方向网络服务。

1 个答案:

答案 0 :(得分:0)

以下是您可能要查看的一些信息...您可以找到有关此here的更多信息。

  

HTTP 403响应

     

对Web服务的请求也可能会收到HTTP 403(禁止)   错误。在大多数情况下,这是由于URL签名无效。至   验证这一点,删除客户端和签名参数,然后重试:

     

如果响应是HTTP 200(OK),则签名是问题。这个   与使用限制无关;请参阅验证故障   Google Maps API for Work的Web服务章节中的问题   文档详细信息。如果响应仍然是HTTP 403   (禁止)错误,签名不一定是问题,它   可能与使用限制有关。这通常意味着你的   访问网络服务已被阻止,理由是您的   申请已超过使用限制太长或其他   滥用网络服务。如果,请与Google Enterprise支持小组联系   你遇到这个问题。对所有Web服务的请求都需要URL   签名。使用HTTP 403(禁止)也会拒绝请求   包含客户端参数但缺少签名时出错   参数,反之亦然。

     

<强>问题

     

您可以通过以下方式超出Google Maps API Web服务使用限制:

     

每天发送过多请求。发送请求太快,即也是如此   每秒许多请求。发送请求太快太久或   否则滥用网络服务。超过其他使用限制,例如   Elevation API中每个请求的点数。

     

<强>解决方案

     

通过结合两种方法可以解决上述问题:

     

通过优化应用程序以使用Web服务来降低使用率   更有效率。在可能的情况下,通过增加使用限制   为您的Google Maps API for Work购买额外的免税额   执照。本文将重点介绍如何优化应用程序   更有效地使用Web服务。

这里的another良好链接也可能有所帮助。