URL 工具类 - URLUtil
# URL 工具类 - URLUtil
简介
URLUtil
是 Hutool 提供的一个专门处理 URL(统一资源定位符)的工具类。URL 是用于表示互联网上资源位置的标准格式,在 Java 中,URL 也可以表示 ClassPath 下的资源路径。URLUtil
提供了丰富的工具方法,简化了 URL 处理和操作的工作,广泛适用于网络请求、资源访问、URL 标准化等场景。
# 1. 获取 URL 对象
URLUtil
提供了几种方法用于获取和处理 URL
对象,最常用的是通过字符串形式的 URL 地址创建 URL
对象。
示例代码:
import cn.hutool.core.util.URLUtil;
import java.net.URL;
public class URLUtilExample {
public static void main(String[] args) {
// 通过字符串创建 URL 对象
String urlString = "http://www.example.com/index.html";
URL url = URLUtil.url(urlString);
System.out.println("URL 对象: " + url);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
参数说明:
url(String url)
:通过字符串形式的 URL 地址创建URL
对象。url
:URL 字符串,不能为null
。- 返回值:创建得到的
URL
对象。
开发场景:
- 在需要通过字符串形式的 URL 进行网络请求、资源访问时,可以使用此方法获取
URL
对象,方便后续处理。
# 2. 获取 ClassPath 下资源的 URL
当需要访问项目中的资源文件时,可以使用 getURL
方法轻松获取 ClassPath 下的资源 URL,常用于读取配置文件等操作。
示例代码:
import cn.hutool.core.util.URLUtil;
import java.net.URL;
public class URLUtilExample {
public static void main(String[] args) {
// 获取 ClassPath 下的资源 URL
URL resourceUrl = URLUtil.getURL("config.properties");
System.out.println("资源 URL: " + resourceUrl);
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
参数说明:
getURL(String resource)
:获取 ClassPath 下资源的 URL。resource
:资源的相对路径,不能为null
。- 返回值:获取到的
URL
对象。
开发场景:
- 在项目中需要读取配置文件、静态资源或其他 ClassPath 下的文件时,可以使用此方法获取其 URL,简化资源访问操作。
# 3. 标准化 URL
URL 在构建、处理或存储时可能会包含多余的斜杠、反斜杠等不规范字符,normalize
方法可以对 URL 进行标准化处理,确保 URL 的一致性。
示例代码:
import cn.hutool.core.util.URLUtil;
public class URLUtilExample {
public static void main(String[] args) {
// 标准化 URL 链接
String url = "http://www.example.com//aaa/bbb";
String normalizedUrl = URLUtil.normalize(url);
System.out.println("标准化后的 URL: " + normalizedUrl);
url = "http://www.example.com//aaa/\\bbb?a=1&b=2";
normalizedUrl = URLUtil.normalize(url);
System.out.println("标准化后的 URL: " + normalizedUrl);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
参数说明:
normalize(String url)
:标准化 URL 链接。url
:需要标准化的 URL 字符串,不能为null
。- 返回值:标准化后的 URL 字符串。
开发场景:
- 在处理 URL 时,标准化操作可以确保 URL 的格式一致,特别是在保存或比较 URL 时,使用此方法可避免因格式问题导致的错误。
# 4. URL 编码与解码
URLUtil
提供了对 URL 进行编码和解码的工具方法,适用于处理包含特殊字符的 URL。
# encode(编码)
import cn.hutool.core.util.URLUtil;
public class URLUtilExample {
public static void main(String[] args) {
// 对字符串进行 URL 编码
String body = "366466 - 副本.jpg";
String encoded = URLUtil.encode(body);
System.out.println("编码后的 URL: " + encoded);
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
参数说明:
encode(String content)
:将字符串进行 URL 编码。content
:需要编码的字符串,不能为null
。- 返回值:编码后的字符串,其中非 ASCII 字符和特殊字符被转为
%xx
格式。
开发场景:
- 在生成包含中文、空格或特殊字符的 URL 时,使用此方法进行编码,确保 URL 在传输过程中不会出错。
# decode(解码)
import cn.hutool.core.util.URLUtil;
public class URLUtilExample {
public static void main(String[] args) {
// 对编码后的字符串进行 URL 解码
String encoded = "366466%20-%20%E5%89%AF%E6%9C%AC.jpg";
String decoded = URLUtil.decode(encoded);
System.out.println("解码后的字符串: " + decoded);
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
参数说明:
decode(String content)
:将 URL 编码的字符串解码为原始字符串。content
:需要解码的字符串,不能为null
。- 返回值:解码后的原始字符串。
开发场景:
- 在接收到经过 URL 编码的数据时,可以使用此方法将数据解码为原始格式,便于显示和进一步处理。
# 5. 提取 URL 的路径部分
在需要对 URL 进行路由解析或路径处理时,getPath
方法可以从 URL 中提取路径部分,忽略查询参数等信息。
示例代码:
import cn.hutool.core.util.URLUtil;
public class URLUtilExample {
public static void main(String[] args) {
// 提取 URL 的路径部分
String url = "http://www.example.com/search?scope=ccc&q=ddd";
String path = URLUtil.getPath(url);
System.out.println("URL 的路径部分: " + path);
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
参数说明:
getPath(String uri)
:从 URI 中提取路径部分。uri
:URI 字符串,不能为null
。- 返回值:提取到的路径部分字符串。
开发场景:
- 在对 URL 进行路由解析、路径比对或进行文件路径处理时,可以使用此方法从 URL 中获取实际的路径部分。
# 6. URL 和 URI 之间的转换
在一些需要使用 URI
对象的场景中,URLUtil
提供了 toURI
方法,方便将 URL
或 URL 字符串转换为 URI
对象。
示例代码:
import cn.hutool.core.util.URLUtil;
import java.net.URI;
public class URLUtilExample {
public static void main(String[] args) {
// 将 URL 字符串转换为 URI 对象
String urlString = "http://www.example.com/index.html";
URI uri = URLUtil.toURI(urlString);
System.out.println("URI 对象: " + uri);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
参数说明:
toURI(String location)
:将 URL 字符串转换为URI
对象。location
:URL 字符串,不能为null
。- 返回值:转换得到的
URI
对象。
开发场景:
- 在与需要
URI
类型的 API 进行对接时,可以使用此方法将 URL 转换为 URI,便于与其他 API 兼容。
总结
URLUtil
工具类在处理 URL 和 URI 相关操作方面提供了强大且便捷的工具方法。它适用于多种场景,如资源访问、URL 标准化、编码解码、路径提取等,极大地简化了 URL 的处理工作,提高了开发效率。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08