2013-05-08 74 views
3

越来越JSON当我工作的发挥框架2.1.1(JAVA)和的GoogleMap V3(本地网站)REQUEST_DENIED。播放框架:从GoogleMap的网址

我想使用googlemap url获取经度和纬度。 我想这个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()) 
} 

它给了我:{ “结果”:[], “状态”: “REQUEST_DENIED”}

  • 我也试图与HTTP: //maps.GOOGLE.com而不是http://maps.GOOGLEAPIS.com但我得到了同样的结果。
  • 我也尝试使用api键但它失败了。
  • 我没有发送太多请求。

如果您有任何建议,请分享。

回答

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(); 

我不知道这是否是一个“清”的方式来做到这一点,但它工作正常。 :)

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(); 
...