hpi*_*que 324 url android urlencode
你如何在Android中编码URL?
我以为是这样的:
final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);
Run Code Online (Sandbox Code Playgroud)
如果我执行上述操作,则将http://in urlAsString替换为http%3A%2F%2Fin encodedURL,然后java.net.MalformedURLException在使用URL时获取 .
yan*_*nko 616
您不对整个URL进行编码,只对来自"不可靠来源"的部分内容进行编码.
String query = URLEncoder.encode("apples oranges", "utf-8");
String url = "http://stackoverflow.com/search?q=" + query;
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用不会抛出已检查异常的DroidParts的Strings.urlEncode(String str).
或者使用类似的东西
String uri = Uri.parse("http://...")
.buildUpon()
.appendQueryParameter("key", "val")
.build().toString();
Run Code Online (Sandbox Code Playgroud)
Cra*_*g B 162
我将在这里添加一个建议.您可以这样做,避免必须获得任何外部库.
尝试一下:
String urlStr = "http://abc.dev.domain.com/0007AC/ads/800x480 15sec h.264.mp4";
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();
Run Code Online (Sandbox Code Playgroud)
你可以看到,在这个特定的URL中,我需要对这些空间进行编码,以便我可以将它用于请求.
这利用了Android类中可用的一些功能.首先,URL类可以将url分解为其正确的组件,因此您无需进行任何字符串搜索/替换工作.其次,当您通过组件而不是单个字符串构造URI时,此方法利用了正确转义组件的URI类功能.
这种方法的优点在于,您可以使用任何有效的URL字符串并使其工作,而无需您自己了解任何特殊知识.
tan*_*api 68
对于android,我会使用String android.net.Uri.encode(String s)
将给定字符串中的字符编码为'%' - 使用UTF-8方案转义八位字节.保留字母("AZ","az"),数字("0-9")和未保留字符("_-!.〜'()*").对所有其他字符进行编码.
防爆/
String urlEncoded = "http://stackoverflow.com/search?q=" + Uri.encode(query);
Run Code Online (Sandbox Code Playgroud)
小智 50
你也可以用它
private static final String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%";
String urlEncoded = Uri.encode(path, ALLOWED_URI_CHARS);
Run Code Online (Sandbox Code Playgroud)
这是最简单的方法
| 归档时间: |
|
| 查看次数: |
253733 次 |
| 最近记录: |