URLURI傻傻分不清楚,dart告诉你该怎么用
简介
如果我们要访问一个网站,需要知道这个网站的地址,网站的地址一般被称为URL,他的全称是Uniform Resource Locator。那么什么是URI呢?
URI的全程是Uniform Resource Identifier,也叫做统一资源标志符。
URI用来对资源进行标记,而URL是对网络上的资源进行标记,所以URL是URI的子集。
了解了URI和URL之间的关系之后,我们来看看dart语言对URI的支持。 dart中的URI
dart中为URI创建了一个专门的类叫做Uri: abstract class Uri
Uri是一个抽象类,他定义了一些对URI的基本操作。它有三个实现类,分别是_Uri,_DataUri和_SimpleUri。
接下来,我们一起来看看,dart中的Uri都可以做什么吧。 encode和decode
为什么要对encode URI?
一般来说URI中可以包含一些特殊字符,像是空格或者中文等等。这些字符在传输中可能不被对方所认识。所以我们需要对Uri进行编码。
但是对于URI中的一些特殊但是有意义的字符,比如: /, :, &, #, 这些是不用被转义的。
所以我们需要一种能够统一编码和解码的方法。
在dart中,这种方法叫做encodeFull() 和 decodeFull(): var uri = "http://www.flydean.com/doc?title=dart uri"; var encoded = Uri.encodeFull(uri); assert(encoded == "http://www.flydean.com/doc?title=dart%20uri"); var decoded = Uri.decodeFull(encoded); assert(uri == decoded);
如果要编码所有的字符,包括那些有意义的字符:/, :, &, #, 那么可以使用encodeComponent() 和 decodeComponent(): var uri = "http://www.flydean.com/doc?title=dart uri"; var encoded = Uri.encodeComponent(uri); assert(encoded == "http%3A%2F%2www.flydean.com%2Fdoc%3Ftitle%3Ddart%20uri"); var decoded = Uri.decodeComponent(encoded); assert(uri == decoded); 解析URI
URI是由scheme,host,path,fragment这些部分组成的。我们可以通过Uri中的这些属性来对Uri进行分解: var uri = Uri.parse("http://www.flydean.com/doc#dart"); assert(uri.scheme == "http"); assert(uri.host == "www.flydean.com"); assert(uri.path == "/doc"); assert(uri.fragment == "dart"); assert(uri.origin == "http://www.flydean.com");
那么怎么构造Uri呢?我们可以使用Uri的构造函数: var uri = Uri( scheme: "http", host: "www.flydean.com", path: "/doc", fragment: "dart"); assert( uri.toString() == "http://www.flydean.com/doc#dart"); 总结
dart为我们提供了非常简单的Uri的使用工具。 本文已收录于 www.flydean.com
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
手机上什么软件可以免费制作小程序?手机上没有软件可以免费制作小程序。就算是拖拽式的设计页面用手机来操作也会十分不方便,用什么设备操作简单就用什么设备吧。小程序是可以免费开通的。开通入口httpsu。jcc。cnaC
UI设计主要是做什么的?UIUserinterface。即用户界面,包含移动APP,网页,智能穿戴设备界面等。UI主要指界面的样式,美观程度。比如ATM机的页面,APP软件的启动页首页注册登录页等。所谓用
今日头条最吸引年轻人的是什么?今日头条最吸引的不一定都是青年人,当然受当今社会氛围影响,吸引年青人占比一定比较少。从青年以上的中年老年人皆有,工农商学兵政的都有。他们为什么能经常光顾头条,主要是今日头条相比其他
厦门新经济产业园有哪些优势?厦门新经济产业园,位于厦门环东海域新城片区,由特房集团开发建设,在2019厦门新经济发展大会首次亮相,成为大会唯一重点推荐项目。紧随厦门新经济产业导向,项目立项即受到高规格高标准的
为何你在跑步机上可以跑很久,去户外跑步却做不到?我在外面跑的多,不喜欢跑步机!恰恰相反,我在跑步机上做不到。跑步机上如果没有视频播放,实在是太煎熬了,上限最多一小时。而跑在户外就不一样了,不同的路况,上下坡水边山上不同的风景,湖
大家说说现在的华为手机好用,还是苹果手机好用?当然是华为手机好用,我一直在用。以前用苹果,现在用华为,我觉得还是华为手机好用其实这两款手机都挺好的,都是当今最顶级品牌,看个人喜欢。这两个品牌我同时都在用。华为现在有了自己的Ha
拼多多天天广告苹果手机9块9是真的吗?是真的,平台不会容许欺诈消费者的行为,但是你需要提供大量的资源,比如邀请分享500个人左右你才能拥有,拿多少现金一个道理,所以普通人基本拿不到,就是为了给平台提供流量和人气!如果智
比特币的本质只有两个字是真言一个比特币36万人民币,一张图片4。4亿人民币,一个元宇宙概念就让Facebook把公司随了元宇宙的姓Meta。01hr醉了无知便会迷茫,最近我也真是醉了。一个比特币既不是金子做的
美版知乎上,外国网友想知道中国哪些技术领先世界和美国中国这些年快速的发展让种花家的人们屡屡心潮澎湃,载人航天空间站火星探测量子通信人造太阳以及华为带领下的5G,芯片技术等等,太多太多让人想起就兴奋不已,虽然我们都很熟悉,但是国外的人
华为Mate40Pro样张赏析很适合拍照党的一款设备华为mate40Pro的样张赏析先来看配置上呢,华为Mate40系列这次是标配5000万像素组合,支持11。28英寸超大感光尺寸23mm焦距f1。9光圈。尤其是独家的RYYB超感光
芯片是哪位科学家发明的,从事芯片研究的科学家获得过诺贝尔奖吗?答芯片这个称呼给人狭义的感觉,以为只是处理器,其实称呼集成电路更靠谱,发明者正是2000年诺贝尔物理学奖获得者,美国工程师杰克基尔比。没错!不是我们一贯认为的科学家,而是工程师,是