google 个地点 api INVALID_REQUEST

google places api INVALID_REQUEST

https://maps.googleapis.com/maps/api/place/details/json?reference=CmRYAAAAciqGsTRX1mXRvuXSH2ErwW-jCINE1aLiwP64MCWDN5vkXvXoQGPKldMfmdGyqWSpm7BEYCgDm-iv7Kc2PF7QA7brMAwBbAcqMr5i1f4PwTpaovIZjysCEZTry8Ez30wpEhCNCXpynextCld2EBsDkRKsGhSLayuRyFsex6JA6NPh9dyupoTH3g&key=AddYourOwnKeyHere

在这个请求中 url 我需要知道 "reference" 包含什么。实际上那是需要将搜索文本传递给 api。但是我在发送到 api 调用之前使用了字符串编码

private String getPlacesUrl(String query) {

    try {
        query = "input=" + URLEncoder.encode(query, "utf-8");
    } catch (UnsupportedEncodingException e1) {
        e1.printStackTrace();
    }
return query;
   }

但它仍将查询作为普通编码字符串发送,如 "London"。

如何实现对 Google api 请求中给出的编码等引用。谁能帮帮我...

使用下面的link.There一些examples.maybe会对你有帮助。

http://www.w3docs.com/learn-javascript/places-autocomplete.html

在自动完成搜索中搜索地点时,我们应该发送获取地点详细信息的请求 url。您的结构应该与此类似:

private String getPlaceDetailsUrl(String ref){

    // reference of place
    String reference = "reference="+ref;

    // Sensor enabled
    String sensor = "sensor=false";

    // Building the parameters to the web service
    String parameters = reference+"&"+sensor+"&"+mKey;

    // Output format
    String output = "json";

    // Building the url to the web service
    String url = "https://maps.googleapis.com/maps/api/place/details/"+output+"?"+parameters;

    return url;
}

有关更多详细信息,请参考此站点作为基础。这个很不错。 google Places autocomplete api