我试图通过Android应用查询路线api。 https://developers.google.com/maps/documentation/directions/
当我构建请求并尝试通过android执行它时,我得到了
的结果{"routes":[],"status":"NOT_FOUND"}
但是,如果我将它粘贴在浏览器中就可以了,例如。
https://maps.googleapis.com/maps/api/directions/json?key=mykey&destination=38.2210514%2C-120.9770154&origin=36.299837%2C-121.7596924&mode=walking&departure_time=1410931203
其中api键是浏览器键。我知道你认为浏览器密钥不适用于Android应用程序请求,api密钥的引用设置为任何所以它应该没关系。当我尝试使用为移动设备指定的不同密钥时,我会收到此错误。
{"error_message":"This IP, site or mobile application is not authorized to use this API key.","routes":[],"status":"REQUEST_DENIED"}
以下是使用spring
执行请求的java代码 Uri.Builder builder = new Uri.Builder();
builder.scheme("https").authority("maps.googleapis.com").appendPath("maps").appendPath("api").appendPath("directions").appendPath("json")
.appendQueryParameter("key", "***")
.appendQueryParameter("destination","39.2210514,-120.9770154")
.appendQueryParameter("origin", "39.299837,-120.7596924")
.appendQueryParameter("mode", mode)
.appendQueryParameter("departure_time", String.valueOf(unixTime));
String url = builder.build().toString();
app.log(url);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
JsonObject response = restTemplate.getForObject(url, JsonObject.class);
app.log(response.toString());