所以我正在构建一个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);
}
但是我从控制台得到了这个不起作用的网址:image
有没有办法在网址中包含括号或使用多个关键字搜索地点的方式?
答案 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;