简介

说明

        本文介绍Java里网络相关的类:java.net.URL。

URL介绍

        URL(Uniform Resource Locator):统一资源定位符。URL 其实就是一个给定的独特资源在 Web 上的地址。

URL结构

分为如下几个部分:

protocol://host:port/path?query#fragment

URL实例


  • 协议(protocol):https(所有种类:HTTP、HTTPS、FTP 和 File)
  • 主机(host:port):knife.blog.csdn.net
  • 端口为(port): 80 ,以上URL实例并未指定端口,因为 HTTP 协议默认的端口号为 80。
  • 文件路径(path):/article/details/124509399
  • 请求参数(query):name=Tony&age=25
  • 定位位置(fragment):abc,定位到网页中 id 属性为 abc 的 HTML 元素位置 。


构建方法

方法

作用

public URL(String protocol, String host, int port, String file)

    throws MalformedURLException

通过给定的参数(协议、主机名、端口号、文件名)创建URL。

public URL(String protocol, String host, String file)

    throws MalformedURLException

使用指定的协议、主机名、文件名创建URL,端口使用协议的默认端口。

public URL(String url)

    throws MalformedURLException

通过给定的URL字符串创建URL

public URL(URL context, String url)

    throws MalformedURLException

使用基地址和相对URL创建

解析方法

方法

作用

public String getProtocol()

返回URL的协议

public String getAuthority()

获取此 URL 的授权部分(主机+端口号)。

public String getHost()

返回URL的主机。

public int getPort()

返回URL端口部分。

public int getDefaultPort()

返回协议的默认端口号。

public String getPath()

返回URL路径部分。

public String getQuery()

返回URL查询参数部分。

public String getRef()

获取此 URL 的锚点(也称为"引用")。

public String getFile()

返回URL文件名部分

public URI toURI()

转为java.net.URI

其他方法

方法

作用

public URLConnection openConnection() throws IOException

打开一个URL连接,并运行客户端访问资源。

示例1:通过url创建

package com.example.a;

import java.net.MalformedURLException;
import java.net.URL;

public class Demo {
    public static void main(String[] args) {
        URL url = null;
        try {
            url = new URL(
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        System.out.println("URL:" + url.toString());
        System.out.println("Protocol:" + url.getProtocol());
        System.out.println("Authority:" + url.getAuthority());
        System.out.println("File:" + url.getFile());
        System.out.println("Host:" + url.getHost());
        System.out.println("Path:" + url.getPath());
        System.out.println("Path:" + url.getPort());
        System.out.println("DefaultPort:" + url.getDefaultPort());
        System.out.println("Query:" + url.getQuery());
        System.out.println("Ref:" + url.getRef());
    }
}

执行结果

Protocol:https
Authority:knife.blog.csdn.net
File:/article/details/124509399?name=Tony&age=25
Host:knife.blog.csdn.net
Path:/article/details/124509399
Path:-1
DefaultPort:443
Query:name=Tony&age=25
Ref:abc

示例2:通过基类和相对url创建

package com.example.a;

import java.net.MalformedURLException;
import java.net.URL;

public class Demo {
    public static void main(String[] args) {
        URL originUrl = null;
        URL url = null;
        try {
            originUrl = new URL
            url = new URL(originUrl, "1122?number=10#aaa");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        System.out.println("URL:" + url.toString());
        System.out.println("Protocol:" + url.getProtocol());
        System.out.println("Authority:" + url.getAuthority());
        System.out.println("File:" + url.getFile());
        System.out.println("Host:" + url.getHost());
        System.out.println("Path:" + url.getPath());
        System.out.println("Path:" + url.getPort());
        System.out.println("DefaultPort:" + url.getDefaultPort());
        System.out.println("Query:" + url.getQuery());
        System.out.println("Ref:" + url.getRef());
    }
}

执行结果

Protocol:https
Authority:knife.blog.csdn.net
File:/article/details/1122?number=10
Host:knife.blog.csdn.net
Path:/article/details/1122
Path:-1
DefaultPort:443
Query:number=10
Ref:aaa

其他网址

Java URL 处理 | 菜鸟教程