【问题标题】:How to Include Brackets Inside URL In Android如何在 Android 中的 URL 中包含括号
【发布时间】:2016-09-14 21:59:13
【问题描述】:

所以我正在构建一个 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);


    }

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

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

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

【问题讨论】:

  • 看看URLEncoder类。
  • 如果不能发送意味着,使用post方法发送位置数据而不是get。
  • 你可能想看看使用URI Builder

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


【解决方案1】:

使用编码器前:

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;

【讨论】:

【解决方案2】:

您的网址中有“受信任”部分和“不受信任”部分。不受信任的部分,例如您的搜索关键字,可能来自用户交互,必须进行编码,以便将它们解释为数据。看起来您的编码超出了应编码的范围。查看此question 的已接受答案以获取解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多