Android 中的 URI 生成器,奇数 URL
URI builder in Android, odd URL
我正在尝试使用 Android 中的 URI 生成器来创建带有变量的 URL。我已阅读 Use URI builder in Android or create URL with variables,但其中未包含我需要的一些符号。
我要创建的 URL 示例:
我想用一个变量替换 ggscoord。我知道如何附加路径和查询参数...但是我应该为 %7C 和 | 使用什么生成器方法? ?
为了修改查询,您可以对像“|”这样的纯字符串使用 appendQueryParameter,对于像“%7C”这样的预编码字符串,您可以使用 encodedQuery。
预编码查询参数没有附加方法。
像%7C
这样的字符已经被编码了,可能是中文编码或者其他的,所以如果你想给你的URL添加一些参数,就用URLEncoder.encode来编码你的原始字符串。
像这样:
Uri.Builder builder = new Uri.Builder();
builder.scheme("http")
.authority("www.lapi.transitchicago.com")
.appendPath("api")
.appendPath("1.0")
.appendPath("ttarrivals.aspx")
.appendQueryParameter("key", "[redacted]")
.appendQueryParameter("mapid",URLEncoder.encode("&&&","UTF-8"); //note this
我正在尝试使用 Android 中的 URI 生成器来创建带有变量的 URL。我已阅读 Use URI builder in Android or create URL with variables,但其中未包含我需要的一些符号。
我要创建的 URL 示例:
我想用一个变量替换 ggscoord。我知道如何附加路径和查询参数...但是我应该为 %7C 和 | 使用什么生成器方法? ?
为了修改查询,您可以对像“|”这样的纯字符串使用 appendQueryParameter,对于像“%7C”这样的预编码字符串,您可以使用 encodedQuery。
预编码查询参数没有附加方法。
像%7C
这样的字符已经被编码了,可能是中文编码或者其他的,所以如果你想给你的URL添加一些参数,就用URLEncoder.encode来编码你的原始字符串。
像这样:
Uri.Builder builder = new Uri.Builder();
builder.scheme("http")
.authority("www.lapi.transitchicago.com")
.appendPath("api")
.appendPath("1.0")
.appendPath("ttarrivals.aspx")
.appendQueryParameter("key", "[redacted]")
.appendQueryParameter("mapid",URLEncoder.encode("&&&","UTF-8"); //note this