Package org.miaixz.bus.core.xyz
Class UrlKit
java.lang.Object
org.miaixz.bus.core.xyz.UrlKit
URL(Uniform Resource Locator)统一资源定位符相关工具类
统一资源定位符,描述了一台特定服务器上某资源的特定位置。
URL组成:协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment protocol :// hostname[:port] / path / [:parameters][?query]#fragment
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringbuildQuery(Map<String, ?> paramMap, Charset charset) 将Map形式的Form表单数据转换为Url参数形式 paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值static StringcompleteUrl(String baseUrl, String relativePath) 补全相对路径decodeQuery(String paramsStr, Charset charset) 将URL参数解析为Map(也可以解析Post中的键值对参数)decodeQueryList(String paramsStr, Charset charset) 将URL参数解析为Map(也可以解析Post中的键值对参数)static StringencodeQuery(String urlWithParams, Charset charset) 对URL参数做编码,只编码键和值 提供的值可以是url附带参数,但是不能只是urlstatic StringgetDataUri(String mimeType, String encoding, String data) Data URI Scheme封装。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据, 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。static StringgetDataUri(String mimeType, Charset charset, String encoding, String data) Data URI Scheme封装。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据, 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。static StringgetDataUriBase64(String mimeType, String data) Data URI Scheme封装,数据格式为Base64。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据, 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。static StringgetDecodedPath(URL url) 从URL对象中获取不被编码的路径Path 对于本地路径,URL对象的getPath方法对于包含中文或空格时会被编码,导致本读路径读取错误。 此方法将URL转为URI后获取路径用于解决路径被编码的问题static URI获取URL中域名部分,只保留URL中的协议(Protocol)、Host,其它为null。static String获得path部分static BufferedReader获得Readerstatic InputStream从URL中获取流static URIgetStringURI(CharSequence content) 获取string协议的URL,类似于string:///xxxxxstatic URL获得URL,常用于使用绝对路径时的情况static URL获得URLstatic URL获得URLstatic URL获取相对于给定URL的新的URL 来自:org.springframework.core.io.UrlResource#createRelativeURLstatic URL[]获得URL,常用于使用绝对路径时的情况static String标准化URL字符串,包括: 自动补齐“http://”头 去除开头的\或者/ 替换\为/static String标准化URL字符串,包括: 自动补齐“http://”头 去除开头的\或者/ 替换\为/static String标准化URL字符串,包括: 自动补齐“http://”头 去除开头的\或者/ 替换\为/ 如果replaceSlash为true,则替换多个/为一个static StringnormalizeQuery(String queryPart, Charset charset) 标准化参数字符串,即URL中?后的部分static long获取URL对应数据长度 如果URL为文件,转换为文件获取文件长度。 其它情况获取URLConnection.getContentLengthLong()static String将Map形式的Form表单数据转换为Url参数形式,会自动url编码键和值static String将Map形式的Form表单数据转换为Url参数形式 paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值 此方法用于拼接URL中的Query部分,并不适用于POST请求中的表单static StringtoQuery(Map<String, ?> paramMap, Charset charset, UrlQuery.EncodeMode encodeMode) 将Map形式的Form表单数据转换为Url参数形式 paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值static URI转字符串为URIstatic URI转字符串为URIstatic URI转URL为URIstatic URI转URL为URIstatic URLtoUrlForHttp(String urlStr) 将URL字符串转换为URL对象,并做必要验证static URLtoUrlForHttp(String urlStr, URLStreamHandler handler) 将URL字符串转换为URL对象,并做必要验证static URL通过一个字符串形式的URL地址创建URL对象static URLurl(String url, URLStreamHandler handler) 通过一个字符串形式的URL地址创建URL对象static URLstatic void如果连接为JNLP方式,则打开缓存
-
Constructor Details
-
UrlKit
public UrlKit()
-
-
Method Details
-
url
- Parameters:
uri-URI- Returns:
- URL对象
- Throws:
InternalException-MalformedURLException包装,URI格式有问题时抛出- See Also:
-
url
通过一个字符串形式的URL地址创建URL对象- Parameters:
url- URL- Returns:
- URL对象
-
url
通过一个字符串形式的URL地址创建URL对象- Parameters:
url- URLhandler-URLStreamHandler- Returns:
- URL对象
-
getStringURI
获取string协议的URL,类似于string:///xxxxx- Parameters:
content- 正文- Returns:
- URL
-
toUrlForHttp
将URL字符串转换为URL对象,并做必要验证- Parameters:
urlStr- URL字符串- Returns:
- URL
-
toUrlForHttp
将URL字符串转换为URL对象,并做必要验证- Parameters:
urlStr- URL字符串handler-URLStreamHandler- Returns:
- URL
-
getURL
获得URL- Parameters:
pathBaseClassLoader- 相对路径(相对于classes)- Returns:
- URL
- See Also:
-
getURL
获得URL- Parameters:
path- 相对给定 class所在的路径clazz- 指定class- Returns:
- URL
- See Also:
-
getURL
获得URL,常用于使用绝对路径时的情况- Parameters:
file- URL对应的文件对象- Returns:
- URL
- Throws:
InternalException- URL格式错误
-
getURL
获取相对于给定URL的新的URL 来自:org.springframework.core.io.UrlResource#createRelativeURL- Parameters:
url- 基础URLrelativePath- 相对路径- Returns:
- 相对于URL的子路径URL
- Throws:
InternalException- URL格式错误
-
getURLs
获得URL,常用于使用绝对路径时的情况- Parameters:
files- URL对应的文件对象- Returns:
- URL
- Throws:
InternalException- URL格式错误
-
getHost
获取URL中域名部分,只保留URL中的协议(Protocol)、Host,其它为null。- Parameters:
url- URL- Returns:
- 域名的URI
-
completeUrl
补全相对路径- Parameters:
baseUrl- 基准URLrelativePath- 相对URL- Returns:
- 相对路径
- Throws:
InternalException- MalformedURLException
-
getPath
获得path部分- Parameters:
uriStr- URI路径- Returns:
- path
- Throws:
InternalException- 包装URISyntaxException
-
getDecodedPath
从URL对象中获取不被编码的路径Path 对于本地路径,URL对象的getPath方法对于包含中文或空格时会被编码,导致本读路径读取错误。 此方法将URL转为URI后获取路径用于解决路径被编码的问题- Parameters:
url-URL- Returns:
- 路径
-
toURI
转URL为URI- Parameters:
url- URL- Returns:
- URI
- Throws:
InternalException- 包装URISyntaxException
-
toURI
转URL为URI- Parameters:
url- URLisEncode- 是否编码参数中的特殊字符(默认UTF-8编码)- Returns:
- URI
- Throws:
InternalException- 包装URISyntaxException
-
toURI
转字符串为URI- Parameters:
location- 字符串路径- Returns:
- URI
- Throws:
InternalException- 包装URISyntaxException
-
toURI
转字符串为URI- Parameters:
location- 字符串路径isEncode- 是否编码参数中的特殊字符(默认UTF-8编码)- Returns:
- URI
- Throws:
InternalException- 包装URISyntaxException
-
getStream
从URL中获取流- Parameters:
url-URL- Returns:
- InputStream流
-
getReader
获得Reader- Parameters:
url-URLcharset- 编码- Returns:
BufferedReader
-
normalize
标准化URL字符串,包括:- 自动补齐“http://”头
- 去除开头的\或者/
- 替换\为/
- Parameters:
url- URL字符串- Returns:
- 标准化后的URL字符串
-
normalize
标准化URL字符串,包括:- 自动补齐“http://”头
- 去除开头的\或者/
- 替换\为/
- Parameters:
url- URL字符串isEncodePath- 是否对URL中path部分的中文和特殊字符做转义(不包括 http:, /和域名部分)- Returns:
- 标准化后的URL字符串
-
normalize
标准化URL字符串,包括:- 自动补齐“http://”头
- 去除开头的\或者/
- 替换\为/
- 如果replaceSlash为true,则替换多个/为一个
- Parameters:
url- URL字符串isEncodePath- 是否对URL中path部分的中文和特殊字符做转义(不包括 http:, /和域名部分)replaceSlash- 是否替换url body中的 //- Returns:
- 标准化后的URL字符串
-
buildQuery
将Map形式的Form表单数据转换为Url参数形式 paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值key1=v1&key2=&key3=v3
- Parameters:
paramMap- 表单数据charset- 编码,编码为null表示不编码- Returns:
- url参数
-
getDataUriBase64
Data URI Scheme封装,数据格式为Base64。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据, 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。Data URI的格式规范:
data:[<mime type>][;charset=<charset>][;<encoding>],<encoded data>- Parameters:
mimeType- 可选项(null表示无),数据类型(image/png、text/plain等)data- 编码后的数据- Returns:
- Data URI字符串
-
getDataUri
Data URI Scheme封装。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据, 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。Data URI的格式规范:
data:[<mime type>][;charset=<charset>][;<encoding>],<encoded data>- Parameters:
mimeType- 可选项(null表示无),数据类型(image/png、text/plain等)encoding- 数据编码方式(US-ASCII,BASE64等)data- 编码后的数据- Returns:
- Data URI字符串
-
getDataUri
Data URI Scheme封装。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据, 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。Data URI的格式规范:
data:[<mime type>][;charset=<charset>][;<encoding>],<encoded data>- Parameters:
mimeType- 可选项(null表示无),数据类型(image/png、text/plain等)charset- 可选项(null表示无),源文本的字符集编码方式encoding- 数据编码方式(US-ASCII,BASE64等)data- 编码后的数据- Returns:
- Data URI字符串
-
size
获取URL对应数据长度- 如果URL为文件,转换为文件获取文件长度。
- 其它情况获取
URLConnection.getContentLengthLong()
- Parameters:
url- URL- Returns:
- 长度
-
useCachesIfNecessary
如果连接为JNLP方式,则打开缓存- Parameters:
con-URLConnection
-
toQuery
将Map形式的Form表单数据转换为Url参数形式,会自动url编码键和值- Parameters:
paramMap- 表单数据- Returns:
- url参数
-
toQuery
将Map形式的Form表单数据转换为Url参数形式 paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值 此方法用于拼接URL中的Query部分,并不适用于POST请求中的表单key1=v1&key2=&key3=v3
- Parameters:
paramMap- 表单数据charset- 编码,null表示不encode键值对- Returns:
- url参数
-
toQuery
public static String toQuery(Map<String, ?> paramMap, Charset charset, UrlQuery.EncodeMode encodeMode) 将Map形式的Form表单数据转换为Url参数形式 paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值key1=v1&key2=&key3=v3
- Parameters:
paramMap- 表单数据charset- 编码,null表示不encode键值对encodeMode- 编码模式- Returns:
- url参数
-
encodeQuery
对URL参数做编码,只编码键和值 提供的值可以是url附带参数,但是不能只是url注意,此方法只能标准化整个URL,并不适合于单独编码参数值
- Parameters:
urlWithParams- url和参数,可以包含url本身,也可以单独参数charset- 编码- Returns:
- 编码后的url和参数
-
normalizeQuery
标准化参数字符串,即URL中?后的部分注意,此方法只能标准化整个URL,并不适合于单独编码参数值
- Parameters:
queryPart- 参数字符串charset- 编码- Returns:
- 标准化的参数字符串
-
decodeQuery
将URL参数解析为Map(也可以解析Post中的键值对参数)- Parameters:
paramsStr- 参数字符串(或者带参数的Path)charset- 字符集- Returns:
- 参数Map
-
decodeQueryList
将URL参数解析为Map(也可以解析Post中的键值对参数)- Parameters:
paramsStr- 参数字符串(或者带参数的Path)charset- 字符集- Returns:
- 参数Map
-