在发生错误的情况下,系统将返回标准格式的错误响应正文,并将 HTTP 状态代码设置为错误状态。
响应包含的对象中有一个 error 对象,其中包括下列键:
code:这与响应的 HTTP 状态相同message:错误的简短描述。status:表示错误性质的状态代码
例如,发送无效的 placeId 参数将返回以下错误:
{
"error": {
"code": 400,
"message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
"status": "INVALID_ARGUMENT"
}
}
可能的错误包括:
| 代码 | 状态 | 消息 | 故障排除 |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
The key you provided is invalid. | 您的 API 密钥无效或未包括在请求内。 请确保您已加入了完整的密钥,而且您已为该密钥启用 API。 |
| 400 | INVALID_ARGUMENT |
"\"path\" parameter contains an invalid value: ☃" | 您的请求包含无效自变量。 造成该错误的最可能原因是:
如果为不再存在的道路或并非道路的地点传递 |
| 403 | PERMISSION_DENIED |
Unregistered request was blocked. 请使用 Google Developers Console 登录。 | 您的 API 密钥无效或未包括在请求内。 请确保您已加入了完整的密钥,而且您已为该密钥启用 API。 |
| 404 | NOT_FOUND |
HTTPS is required for this service. | 确保您发送请求的对象是 https://roads.googleapis.com/ 而非 http://roads.googleapis.com/。 |
| 429 | RESOURCE_EXHAUSTED |
The request was throttled due to project QPS limit being reached. | 您已超出自己在 API Console 中配置的每用户每秒请求数限制。 此限制应配置为防止单个或一小部分用户耗尽您每天的配额,同时还允许所有用户都能进行合理的访问。 |
| 429 | RESOURCE_EXHAUSTED |
The request was throttled due to daily limit being reached. | 您超过了项目的每日配额。 |
指数后退
当请求失败时,您应该确保通过指数后退重试请求。 例如,如果请求失败一次,一秒后重试;如果再次失败,则两秒后重试;然后是四秒后重试;依此类推。 这可以确保中断的请求或大规模故障不会因很短时间内许多客户端试图重试请求而给 Google 的服务器造成冲击。
