URI和URL

作者: Yangxy_Lazy | 来源:发表于2018-03-24 19:02 被阅读0次

一、URI和URL的区别:

1、URI:统一资源标识符,用来唯一的识别一个资源,包含URL和URN。Uri时Android开发的,扩展了JAVA的URI的一些功能来特定的适用于Android开发。
2、URL:统一资源定位符,是一种具体的URI,也就是URL可以用来识别一个资源,还指明了如何定位一个资源。

二、URI的使用:

1、基本形式:http://www.baidu.com/artical.....
[scheme:][//authority][path][?query][#fragment]
①path:可以有多个,每个用/连接;
②query参数可以带有对应的值,用&连接,也可以不带
③ 在Android中,schema,authority是必须要有的,但是parh,query等是选择性的。

2、终极划分:
[scheme:][//host:port][path][?query][#fragment]

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

①scheme:http
host:www.java2s.com
③port:8080
④query:是在?后面的部分的键值对:stove=10&path=32&id=4
⑤authority:包含host和port:www.java2s.com:8080
⑥fragment:在最后用#分隔的部分,harvic

4、代码的提取:
http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic

①getScheme:获取Uri中的Scheme字符串的部分,即http
②getSchemeSpecificPart:获取Uri中的scheme-specific-part部分,即//www.java2s.com:8080/yourpath/fileName.htm?
③getAuthority:获取Uri中的Authority中的部分,即www.java2s.com:8080
④getQuery:获取Uri中的query的部分:即stove=10&path=32&id=4
⑤getHost:获取Authority中的host部分,即www.java2s.com
⑥getPort:获取Authoruty中的Port部分,即8080
⑦还有两个特别常用的:List<String> getPathSegments():

String mUriStr = "http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic";
Uri mUri = Uri.parse(mUriStr);
List<String> pathSegList = mUri.getPathSegments();
for (String pathItem:pathSegList){
Log.d("qijian","pathSegItem:"+pathItem);
}
以上分别打印出yourpath和fileName.htm

⑧getQueryParameter(String key):在上面我们通过getQuery()获取整个query字段:stove=10&path=32&id=4,getQueryParameter(String key)作用就是通过传进去path中某个Key的字符串,返回他对应的值。

5、使用getQueryParameterNames(),将键值对存入hashMap:
public static Map<String, String> getAndroidParamsByLinkUrl(String url) {
Map<String, String> params = new HashMap<>();
if (isLegallUrl(url)) {
String androidRouterUrl = extractAndroidRouterUrl(url);

    if (!TextUtils.isEmpty(androidRouterUrl)) {

        Uri uri = Uri.parse(FAKE_HEADER + androidRouterUrl);

        for (String item : uri.getQueryParameterNames()) {
            params.put(item, uri.getQueryParameter(item));
        }
    }

}
return params;

}

相关文章

  • URL, URI, URN三者区别

    URL和URN都是URI的子集 URL和URN都是URI,但是URI不一定是URL或者URN 关于URL: URL...

  • HTTP基本原理

    URL/URI URI 和 URL 两个术语,URI 全称为 Uniform Resource Identifie...

  • URI、URL和URN简单理解

    URI、URL、URN。 URI:包括url和urn,Uniform Resource Indentifier,统...

  • URI基础

    URI、URL和URN URI(Uniform Resource Identifier) : 标识 URL(Uni...

  • URL 源码分析

    需要了解的知识点:URI、 URL 和 URN 的区别URI 源码分析 URL 和URI的最大区别是:URL可以定...

  • URI 源码分析

    需要提前了解下什么是URI,及URI和URL的区别:URI、 URL 和 URN 的区别 URI 引用包括最多三个...

  • 网络底层原理之HTTP

    HTTP URI 和 URL的关系:URI包括了URL。 html/login.html,这是个URI,它 不能在...

  • HTTP

    URI和URL URI:统一资源标识符 URL:统一资源定位符 与URI相比我们更熟悉URL,URL是使用浏览器等...

  • ContentProvider和Uri

    1. url和uri: URI:Uniform Resource Identifier,统一资源标识符; URL:...

  • HTTP 基础

    一什么是URL? 1.1URL和URI有什么区别? URI:Uniform resource identifer,...

网友评论

      本文标题:URI和URL

      本文链接:https://www.haomeiwen.com/subject/fnfccftx.html