我正在尝试使用Android中的URI生成器来创建一个带有变量的URL。我读过在Android中使用URI生成器或使用变量创建URL,但我需要的一些符号没有包含在其中。
我想创建的URL示例:
"https://commons.wikimedia.org/w/api.php?action=query&prop=categories|coordinates|pageprops&format=json&clshow=!隐藏&coprop=类型%7名称%7尺寸%7国家%7地区%7全球&codistancecompoint=38.111869944444445%7C1.33562638888888&generator=地理搜索&重定向=&ggscoord=38.111869944444445%7C1.35562638888888888&ggsradius=100&ggslimit=10&ggsnamespace=6&ggsprop=类型%7名称%7尺寸%7国家%7地区%7全球&ggsprimary=all&formatversion=2"
我想用一个变量替换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