Uri,Url与Urn

项目里用到了许多Uri,Url,Urn相关东西,一直对其的定义模糊不清,趁迭代开发周期,对一些模糊的东西弄清楚

内容主要参考自http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html
http://blog.csdn.net/harvic880925/article/details/44679239

  • Uri,uniform resource identifier 既统一资源标识符,是一个抽象的概念,非实体的定义。其表示一个可使用于区别于其他资源标识符。例如字符串,数字类型等。在java中国,Uri既可以是相对的,也可以是绝对的,只要他符合Uri的格式定义。
  • Url,uniform resource location 既统一资源定位符,是Uri的一种实现。其不仅可唯一标志一个资源,而且还可以locate到这个资源。
  • Urn,uniform resource name 既统一资源命名

我们在定义个标识一个资源的变量名称时,到底应该使用Uri还是Url主要取决于这个value是否能够真实的定位到资源。Uri是更宽泛的概念,所以所有的资源名称都叫做Uri肯定是没错的。当把一个变量定义为Url时,就需要知道这个Url是真实可确切的定位到某个资源,既是绝对路径,而非相对。

其中Uri类存在于android.net.Uri中,Url存在于java.net.URI中,所以也有说法,Uri是在Url基础上扩展的,以适用于Android项目中。

Uri基本结构

标准的Uri与进一步的形式基本结构如下:

[scheme:]scheme-specific-part[#fragment]
[scheme:][//authority][path][?query][#fragment]
[scheme:][//host:port][path][?query][#fragment]

其中最后一种结构在android中较为常见,举个例子

http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic

":"之前的“http”为scheme,www.java2s.com:8080为host:port
/yourpath/fileName.htm为path, stove=10&path=32&id=4位query;#后为fragment

Uri数据的提取

getScheme() :获取Uri中的scheme字符串部分,在这里即,http
getSchemeSpecificPart():获取Uri中的scheme-specific-part:部分,这里是://www.java2s.com:8080/yourpath/fileName.htm?
getFragment():获取Uri中的Fragment部分,即harvic
getAuthority():获取Uri中Authority部分,即www.java2s.com:8080
getPath():获取Uri中path部分,即/yourpath/fileName.htm
getQuery():获取Uri中的query部分,即stove=10&path=32&id=4
getHost():获取Authority中的Host字符串,即www.java2s.com
getPost():获取Authority中的Port字符串,即8080
另外还有两个常用的:getPathSegments(),getQueryParameter(String key)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、URI与Uri 大家可能经常会看到在开发时,怎么有的时候是URI,有的时候是Uri,这是怎么回事? 名称如此相...
    Ten_Minutes阅读 12,520评论 4 8
  • 转载 :http://blog.csdn.net/harvic880925/article/details/446...
    ping0505阅读 3,161评论 0 1
  • 之前在做图像裁剪功能的时候涉及到了Uri,以及联想到ContentProvider中也使用到了Uri,对这块内容还...
    陈利健阅读 13,077评论 0 14
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • IOS学习博客整理 集合 GitHub - Aufree/trip-to-iOS: A curated list ...
    翱翔的大脚丫阅读 2,880评论 0 1