我正在开发 play framework 2.1.1 (java) 和 googlemap v3(本地网站)。
我想使用 googlemap url 获取纬度和经度。 我希望此 url 返回给我 json 响应以便稍后解析它并在我的数据库中插入纬度和经度。 当它不是 googlemap url 时它工作正常但是当我在我的代码中使用这种 url 时出现著名的 "request_denied" 错误:
http://maps.googleapis.com/maps/api/geocode/json?address=Paris&sensor=false
我不知道为什么,我读到这个错误是因为缺少传感器参数,但正如您在我的网址中看到的那样。
关于我的代码:
public static Result displaySomeJson(){
Promise<WS.Response> request= WS.url("http://maps.googleapis.com/maps/api/geocode/json?address=Paris&sensor=false").get();
JsonNode json = request.asJson();
return ok(json.toString())
}
它给我:{"results": [],"status": "REQUEST_DENIED"}
- 我也尝试使用 http://maps.GOOGLE.com 而不是 http://maps.GOOGLEAPIS.com 但我得到了相同的结果。
- 我也尝试过使用API key ,但还是失败了。
- 我没有发送太多请求。
如果您有任何建议,请分享。
最佳答案
好的,我是这样找到的:
Promise<WS.Response> request =
WS.url("http://maps.googleapis.com/maps/api/geocode/json")
.setQueryParameter("address",adresse).setQueryParameter("sensor", "true")
.post("content");
然后我解析了它:
String lat = request.get().asJson().path("results").get(0).get("geometry").get("location").get("lat").toString();
String long = request.get().asJson().path("results").get(0).get("geometry").get("location").get("lng").toString();
我不知道这样做是否是一种“明确”的方式,但它工作正常。 :)
关于json - Play Framework : Request_denied when getting json from googlemap url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16437717/