在Java中,可以使用java.net.URL
类来解析URL
import java.net.MalformedURLException;
import java.net.URL;
public class URLParser {
public static void main(String[] args) {
try {
// 定义一个URL字符串
String urlStr = "https://www.example.com:8080/path?param1=value1¶m2=value2#fragment";
// 创建一个URL对象
URL url = new URL(urlStr);
// 获取协议
String protocol = url.getProtocol();
System.out.println("协议: " + protocol);
// 获取主机名
String host = url.getHost();
System.out.println("主机名: " + host);
// 获取端口号
int port = url.getPort();
System.out.println("端口号: " + port);
// 获取路径
String path = url.getPath();
System.out.println("路径: " + path);
// 获取查询参数
String query = url.getQuery();
System.out.println("查询参数: " + query);
// 获取片段标识符
String fragment = url.getRef();
System.out.println("片段标识符: " + fragment);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
运行上述代码将输出:
协议: https
主机名: www.example.com
端口号: 8080
路径: /path
查询参数: param1=value1¶m2=value2
片段标识符: fragment
请注意,如果URL没有指定端口号,getPort()
方法将返回-1
。如果需要获取默认端口号(例如,HTTP的默认端口是80,HTTPS的默认端口是443),可以使用url.getDefaultPort()
。