You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android调用附近地点API获取医院时遇REQUEST_DENIED错误求助

解决Google Places API REQUEST_DENIED错误

先看看你遇到的具体错误日志:

Returning data= {"error_message" : "This IP, site or mobile application is not authorized to use this API key. Request received from IP address 103.247.48.75, with empty referer", "html_attributions" : [], "results" : [], "status" : "REQUEST_DENIED"} 
05-10 16:22:38.297 4057-4057/pilojan.slbroute D/json data: { "error_message" : "This IP, site or mobile application is not authorized to use this API key. Request received from IP address 103.247.48.75, with empty referer", "html_attributions" : [], "results" : [], "status" : "REQUEST_DENIED"} 
05-10 16:22:38.297 4057-4057/pilojan.slbroute D/nearbyplacesdata: called parse method 
05-10 16:22:45.222 4057-4057/pilojan.slbroute D/MapsActivity: url = https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=8.9908983,80.599&radius=10000&type=hospital&sensor=true&key=AIzaSyBFJUy7jJJaOECHEtVFs2WkTalBwtinQao 
05-10 16:22:45.267 4057-4275/pilojan.slbroute

从日志里能明确看到,请求被拒绝的核心原因有两个:

  • 你的API密钥没有授权当前发起请求的IP地址(103.247.48.75)
  • 请求的referer字段为空

下面是针对性的解决步骤:

1. 检查并修正API密钥的授权配置

这是最关键的环节,直接登录Google Cloud控制台操作:

  • 找到你的项目,进入API和服务 > 凭据页面,定位到对应的API密钥
  • 先确认你已经为这个密钥启用了Places API——很多新手会漏掉这一步,导致即使密钥配置正确也无法调用
  • 在「应用限制」部分,根据你的场景选合适的限制方式:
    • 如果是Android应用,优先选Android应用,然后添加你的应用的SHA-1证书指纹和包名(你的包名是pilojan.slbroute),这样只有你的应用能使用这个密钥,安全性更高
    • 如果是测试阶段需要用IP访问,就选IP地址,把103.247.48.75添加到允许的IP列表里;注意如果用模拟器测试,这个IP可能是你电脑的公网IP,要确认清楚

2. 处理Referer为空的问题

  • 如果你选了HTTP referer作为应用限制方式,那必须确保请求里带上正确的referer,但这种方式并不适合Android应用——移动端的referer很容易被伪造,所以更推荐用上面说的Android应用限制,这样就不需要处理referer的问题了
  • 要是一定要用HTTP referer限制,那得在网络请求代码里手动添加Referer请求头,值可以设为和应用相关的域名(不过Android应用通常没有固定域名,还是不推荐这种方式)

3. 验证请求URL的正确性

  • 你的请求URL里的sensor参数已经被Google废弃了,虽然不会直接导致错误,但可以去掉,让URL更规范
  • 可以直接把日志里的URL复制到浏览器访问,看看返回的错误是否和应用里一致:
    • 如果浏览器返回同样的错误,说明问题出在密钥配置上,和应用代码无关
    • 如果浏览器能正常返回数据,那说明应用里的请求可能没正确传递参数,或者网络环境有问题(比如代理、VPN导致IP变化)

额外注意事项

  • 确保你的Google Cloud项目已经开启了计费功能:虽然Places API有免费额度,但必须启用计费才能正常调用,否则请求会被直接拒绝
  • 测试时尽量避免用公共Wi-Fi,这类网络的出口IP可能经常变化,导致IP限制失效

内容的提问来源于stack exchange,提问作者Tech1st Tutorials

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:57:48