我正在开发 play framework 2.1.1 (java)和 googlemap v3 (本地网站)。
我想使用googlemap网址获取经度和纬度。 我希望这个url返回 json 响应以便稍后解析并在我的数据库中插入lat和long。 当它不是googlemap网址时它工作正常,但当我在我的代码中使用这种网址时,我有着名的“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”}
如果您有任何建议,请分享。
答案 0 :(得分:2)
好的,我发现了这种方式:
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();
我不知道这是否是一种“明确”的方式,但它运作正常。 :)
答案 1 :(得分:0)
我遇到了与Play 2相同的问题。在使用HttpUrlConnection将WS.url更改为旧式之后,它工作正常。不知道为什么WS.url不起作用。
URL theUrl = new URL("http://maps.googleapis.com/maps/api/geocode/json?address=Paris&sensor=false");
HttpURLConnection urlConn = (HttpURLConnection) theUrl.openConnection();
...