小编典典

Android 中的 URL 编码

all

如何在 Android 中对URL进行编码?

我以为是这样的:

final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);

如果我执行上述操作,则http://inurlAsString将替换为http%3A%2F%2Fin encodedURL,然后 java.net.MalformedURLException在使用 URL 时会得到一个。


阅读 68

收藏
2022-06-04

共1个答案

小编典典

您不对整个 URL 进行编码,仅对来自“不可靠来源”的部分进行编码。

  • Java:

coffeescript String query = URLEncoder.encode("apples oranges", "utf-8"); String url = "http://stackoverflow.com/search?q=" + query;

  • Kotlin:

kotlin val query: String = URLEncoder.encode("apples oranges", "utf-8") val url = "http://stackoverflow.com/search?q=$query"

或者,您可以使用不会引发检查异常的DroidParts的Strings.urlEncode(String str) 。

或者使用类似的东西

String uri = Uri.parse("http://...")
                .buildUpon()
                .appendQueryParameter("key", "val")
                .build().toString();
2022-06-04