Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中的URL中包含括号_Android_Url_Encoding_Formatting_Google Places Api - Fatal编程技术网

如何在Android中的URL中包含括号

如何在Android中的URL中包含括号,android,url,encoding,formatting,google-places-api,Android,Url,Encoding,Formatting,Google Places Api,因此,我正在构建一个android应用程序,使用google places api获取附近的餐馆,但当我使用多个关键字时,我在url格式方面有一个小问题, 当我在浏览器中测试url时,它工作得很好,但是当我在android studio中获取url时出现问题,带括号的部分被排除在url之外,所以我所需要的就是如何在android中的url中放置括号 这是url格式设置的主要代码: String keywordText; String keyword="(Pizza)and(sushi)"; St

因此,我正在构建一个android应用程序,使用google places api获取附近的餐馆,但当我使用多个关键字时,我在url格式方面有一个小问题, 当我在浏览器中测试url时,它工作得很好,但是当我在android studio中获取url时出现问题,带括号的部分被排除在url之外,所以我所需要的就是如何在android中的url中放置括号

这是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);


    }
格式化后应获取的url:

但是,我从控制台得到了这个不起作用的url:

是否有一种方法可以在url中包含括号,或者使用多个关键字搜索位置???

url中有“受信任”部分和“不受信任”部分。不受信任的部分,如搜索关键字,可能来自用户交互,必须对其进行编码,以便将其解释为数据。看起来您编码的内容超出了应该编码的范围。请查看对此的公认答案,作为解决方案的开始。

使用编码器ex:

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


看一看类。如果你不能发送方法,请使用post方法发送位置数据,而不是get。你可能想看看使用一个不起作用的url我得到的
String encodedKeyword = null;
try {
          encodedKeyword = URLEncoder.encode(keyword, "UTF-8");
    } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
    }
keywordText = "&keyword=" + encodedkeyword;