目錄
簡介
dart中的URI
encode和decode
解析URI
總結
如果我們要通路一個網站,需要知道這個網站的位址,網站的位址一般被稱為URL,他的全稱是Uniform Resource Locator。那麼什麼是URI呢?
URI的全程是Uniform Resource Identifier,也叫做統一資源标志符。
URI用來對資源進行标記,而URL是對網絡上的資源進行标記,是以URL是URI的子集。
了解了URI和URL之間的關系之後,我們來看看dart語言對URI的支援。
dart中為URI建立了一個專門的類叫做Uri:
Uri是一個抽象類,他定義了一些對URI的基本操作。它有三個實作類,分别是_Uri,_DataUri和_SimpleUri。
接下來,我們一起來看看,dart中的Uri都可以做什麼吧。
為什麼要對encode URI?
一般來說URI中可以包含一些特殊字元,像是空格或者中文等等。這些字元在傳輸中可能不被對方所認識。是以我們需要對Uri進行編碼。
但是對于URI中的一些特殊但是有意義的字元,比如: /, :, &, #, 這些是不用被轉義的。
是以我們需要一種能夠統一編碼和解碼的方法。
在dart中,這種方法叫做encodeFull() 和 decodeFull():
如果要編碼所有的字元,包括那些有意義的字元:/, :, &, #, 那麼可以使用encodeComponent() 和 decodeComponent():
URI是由scheme,host,path,fragment這些部分組成的。我們可以通過Uri中的這些屬性來對Uri進行分解:
那麼怎麼構造Uri呢?我們可以使用Uri的構造函數:
dart為我們提供了非常簡單的Uri的使用工具。
本文已收錄于 www.flydean.com 最通俗的解讀,最深刻的幹貨,最簡潔的教程,衆多你不知道的小技巧等你來發現! 歡迎關注我的公衆号:「程式那些事」,懂技術,更懂你!