如何在 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 时会得到一个。
http://
urlAsString
http%3A%2F%2F
encodedURL
java.net.MalformedURLException
您不对整个 URL 进行编码,仅对来自“不可靠来源”的部分进行编码。
coffeescript String query = URLEncoder.encode("apples oranges", "utf-8"); String url = "http://stackoverflow.com/search?q=" + query;
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();