如何在Android中的网址中加入括号

时间:2016-05-18 12:10:25

标签: android url encoding formatting google-places-api

所以我正在构建一个Android应用程序,使用谷歌附近的餐馆放置api但我在使用多个关键字时,网址格式有点问题, 当我在浏览器中测试网址它运行良好,但问题是当我在android工作室内获取url时,带括号的部分被排除在url之外,所以我需要的是如何将括号放入android中的url。

这是网址格式的主要代码:

String keywordText;
String keyword="(Pizza)and(sushi)";
String BASE_URL="https://maps.googleapis.com/maps/api/place/nearbysearch/json?";
String API_KEY= "AIzaSyBg-iwzAjavEUVV9hOQUr0JljZHL7XFRkQ";
String ApiKey;
String locationText;




public void onLocationComplete(Location location) {
        Log.e("onLocationComlete", keyword);

        keywordText = "&keyword=" + keyword;
        ApiKey = "&key=" + API_KEY;
        radiusText = "&radius=" + radius;
        locationText = "&location=" + location.getLatitude() + "," + location.getLongitude();
        url = BASE_URL + locationText + radiusText + keywordText + ApiKey;

        loc = location;
        new FetchFromServerTask(Restaurants.this, 0).execute(url);


    }

格式化后我应该得到的网址:  https://maps.googleapis.com/maps/api/place/nearbysearch/json?&location=33.2711492,35.2125282&radius=10000&keyword=(pizza)and(sushi)&key=AIzaSyBg-iwzAjavEUVV9hOQUr0JljZHL7XFRkQ

但是我从控制台得到了这个不起作用的网址:image

有没有办法在网址中包含括号或使用多个关键字搜索地点的方式?

2 个答案:

答案 0 :(得分:0)

有'#34;信任"你的网址的一部分和"不信任"部分。不受信任的部分(例如搜索关键字)可能来自用户交互,必须进行编码才能将其解释为数据。看起来你的编码比编码要多。请查看此question的已接受答案,以获得解决方案的开始。

答案 1 :(得分:0)

使用Encoder ex:

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

...

String encodedKeyword = null;
try {
          encodedKeyword = URLEncoder.encode(keyword, "UTF-8");
    } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
    }
keywordText = "&keyword=" + encodedkeyword;