URL对象创建
public URL(String spec) throws MalformedURLException {
this(null, spec);
}
我们使用只有一个参数的构造函数来创建URL对象;
其中参数 spec指的是可以转换成url的字符串。
获取URL信息
try {
URL url = new URL("http://username:password@host:8080/index?parameterName=parameterValue#fragment");
// 获取协议
System.out.println("protocol: " + url.getProtocol());
// 获取主机名
System.out.println("host: " + url.getHost());
// 获取端口号
System.out.println("port: " + url.getPort());
// 获取资源路径
System.out.println("path: " + url.getPath());
// 获取参数
System.out.println("query: " + url.getQuery());
// 获取authority(包含了用户名、密码、主机名、端口号)
System.out.println("authority: " + url.getAuthority());
// 获取fragment
System.out.println("ref: " + url.getRef());
// 获取资源(包含了资源路径和参数)
System.out.println("file: " + url.getFile());
// 获取用户信息(包含了用户名、密码)
System.out.println("userInfo: " + url.getUserInfo());
// 获取默认端口(协议的默认端口,如果端口没有设置,则会使用默认端口)
System.out.println("defaultPort: " + url.getDefaultPort());
} catch (IOException e) {
throw new RuntimeException(e);
}
运行代码后的结果为
protocol: http
host: host
port: 8080
path: /index
query: parameterName=parameterValue
authority: username:password@host:8080
ref: fragment
file: /index?parameterName=parameterValue
userInfo: username:password
defaultPort: 80