Android: 在 URI 生成器中追加没有键的查询参数
Android: append Query Parameter without a key in URI Builder
我正在使用 Web API 服务“https://somedomain.net/api/items.php?token=token&item”来检索 Json 响应。
在 Android 中,我将 URI 生成器用作:
public static URL buildUrl(String token, String item) {
Uri builtUri = Uri.parse(BASE_URL).buildUpon()
.appendQueryParameter(PARAM_TOKEN, token)
.appendQueryParameter(PARAM_ITEM, item)
.build();
URL url = null;
try {
url = new URL(builtUri.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
URI 生成器的结果“https://somedomain.net/api/items.php?token=token&item=item”
我需要使用不带参数键的值 "item"。
我尝试使用 "null" 没有用“https://somedomain.net/api/items.php?token=token&=item”
我在网上找了 3 天都没找到答案。
在此先感谢您的帮助。
没有函数addQueryParam没有值,所以你可以添加一些虚拟值,例如“”,然后用空字符串替换它(replace(“=”,“”))。
但我建议您自己构建查询,然后将 queryString 附加到 Uri.Builder 的 "query" 函数。
public static URL buildUrl(String token, String item) {
String query = new StringBuilder()
.append(PARAM_TOKEN).append("=").append(token).append("&")
.append(PARAM_ITEM).toString();
Uri builtUri = Uri.parse(BASE_URL).buildUpon()
.encodedQuery(query)
.build();
URL url = null;
try {
url = new URL(builtUri.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
但它要求 BASE_URL 没有任何查询参数。如果它有那么你必须从旧的 Uri 的一部分构建新的 Uri,但是用你自己的查询替换查询 BASE_URL query 和你的附加参数
我正在使用 Web API 服务“https://somedomain.net/api/items.php?token=token&item”来检索 Json 响应。
在 Android 中,我将 URI 生成器用作:
public static URL buildUrl(String token, String item) {
Uri builtUri = Uri.parse(BASE_URL).buildUpon()
.appendQueryParameter(PARAM_TOKEN, token)
.appendQueryParameter(PARAM_ITEM, item)
.build();
URL url = null;
try {
url = new URL(builtUri.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
URI 生成器的结果“https://somedomain.net/api/items.php?token=token&item=item”
我需要使用不带参数键的值 "item"。
我尝试使用 "null" 没有用“https://somedomain.net/api/items.php?token=token&=item”
我在网上找了 3 天都没找到答案。
在此先感谢您的帮助。
没有函数addQueryParam没有值,所以你可以添加一些虚拟值,例如“”,然后用空字符串替换它(replace(“=”,“”))。
但我建议您自己构建查询,然后将 queryString 附加到 Uri.Builder 的 "query" 函数。
public static URL buildUrl(String token, String item) {
String query = new StringBuilder()
.append(PARAM_TOKEN).append("=").append(token).append("&")
.append(PARAM_ITEM).toString();
Uri builtUri = Uri.parse(BASE_URL).buildUpon()
.encodedQuery(query)
.build();
URL url = null;
try {
url = new URL(builtUri.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
return url;
}
但它要求 BASE_URL 没有任何查询参数。如果它有那么你必须从旧的 Uri 的一部分构建新的 Uri,但是用你自己的查询替换查询 BASE_URL query 和你的附加参数