Url 中携带参数、编解码、解析参数的问题

服务端拼接参数

douyuapp://h5?url=http%3a%2f%2fdoc.dz11.com%2fddse%2fpreview%2fshare%2f834f082265aa38f3c267%3fsid%3d394%26shareType%3d1%232.8%25E3%2580%2581%2520%25E6%2588%25BF%25E9%2597%25B4%25E5%25B8%25B8%25E7%2594%25A8%25E4%25BF%25A1%25E6%2581%25AF

上面这个url 中,有一个参数 url

注意,服务端返回这个url,必须要进行 urlEncode编码。否则,客户端无法解析。

为什么无法解析?

解析的原理是字符串切割(或者正则匹配),douyuapp://h5?url=xxxx&params2=2222 针对这个的解析,就是通过? 解析到host, 通过 & = 解析各个参数

如果某个参数是一个网址,这个网址中包含 & = 等符号,就会影响解析,解决方案就是服务端将 一个url 中的网页地址参数 用urlEncode编码一下

编解码工具

可使用这个在线工具验证 链接

客户端解析

            Uri uri = Uri.parse("douyuapp://h5?url=xxxx&params2=2222");
            String scheme = uri.getScheme();
            String url = uri.getQueryParameter("url");
posted @ 2020-06-12 09:48  gregpeng  阅读(1299)  评论(0编辑  收藏  举报