Package org.miaixz.bus.core.net.url
Class UrlBuilder
java.lang.Object
org.miaixz.bus.core.net.url.UrlBuilder
- All Implemented Interfaces:
Serializable,Builder<String>
URL 生成器,格式形如:
[scheme:]scheme-specific-part[#fragment] [scheme:][//authority][path][?query][#fragment] [scheme:][//host:port][path][?query][#fragment]
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddPath(CharSequence path) 增加路径,在现有路径基础上追加路径addPathSegment(CharSequence segment) 增加路径节点,路径节点中的"/"会被转义为"%2F"添加查询项,支持重复键,默认非严格模式build()创建URL字符串获得authority部分获取编码,用于URLEncode和URLDecode获取标识符,#后边的部分获取标识符,#后边的部分getHost()获取 主机,例如127.0.0.1getPath()获取路径,例如/aa/bb/ccgetPaths()获得路径,例如/aa/bb/ccintgetPort()获取端口,默认-1int获取端口,如果未自定义返回协议默认端口getQuery()获取查询语句,例如a=1&b=2 可能为null获取查询语句,例如a=1&b=2获取协议,例如http获取协议,例如http,如果用户未定义协议,使用默认的http协议static UrlBuilderof()创建空的UrlBuilderstatic UrlBuilder使用URL字符串构建UrlBuilder,默认使用UTF-8编码 注意:此方法如果提供的URL为非网络协议,自动尝试使用文件协议static UrlBuilderof(String scheme, String host, int port, String path, String query, String fragment, Charset charset) 构建UrlBuilderstatic UrlBuilderof(String scheme, String host, int port, UrlPath path, UrlQuery query, String fragment, Charset charset) 构建UrlBuilderstatic UrlBuilder使用URL字符串构建UrlBuilderstatic UrlBuilder使用URI构建UrlBuilderstatic UrlBuilder使用URL构建UrlBuilderstatic UrlBuilderof(UrlBuilder builder) 使用UrlBuilder构建UrlBuilderstatic UrlBuilder使用URL字符串构建UrlBuilder,当传入的URL没有协议时,按照http协议对待,编码默认使用UTF-8static UrlBuilder使用URL字符串构建UrlBuilder,当传入的URL没有协议时,按照http协议对待。static UrlBuilderofHttpWithoutEncode(String httpUrl) 使用URL字符串构建UrlBuilder,当传入的URL没有协议时,按照http协议对待 此方法不对URL编码setCharset(Charset charset) 设置编码,用于URLEncode和URLDecodesetFragment(String fragment) 设置标识符,例如#后边的部分设置主机,例如127.0.0.1设置路径,例如/aa/bb/cc,将覆盖之前所有的path相关设置setPort(int port) 设置端口,默认-1设置查询语句,例如a=1&b=2,将覆盖之前所有的query相关设置设置协议,例如httpsetWithEndTag(boolean withEngTag) 是否path的末尾加 /toString()toURI()转换为URItoURL()转换为URL对象toURL(URLStreamHandler handler) 转换为URL对象
-
Constructor Details
-
UrlBuilder
public UrlBuilder()构造 -
UrlBuilder
public UrlBuilder(String scheme, String host, int port, UrlPath path, UrlQuery query, String fragment, Charset charset) 构造- Parameters:
scheme- 协议,默认httphost- 主机,例如127.0.0.1port- 端口,-1表示默认端口path- 路径,例如/aa/bb/ccquery- 查询,例如a=1&b=2fragment- 标识符例如#后边的部分charset- 编码,用于URLEncode和URLDecode,null表示不编码
-
-
Method Details
-
of
使用UrlBuilder构建UrlBuilder- Parameters:
builder-UrlBuilder- Returns:
- UrlBuilder
-
of
使用URI构建UrlBuilder- Parameters:
uri- URIcharset- 编码,用于URLEncode和URLDecode- Returns:
- UrlBuilder
-
ofHttpWithoutEncode
使用URL字符串构建UrlBuilder,当传入的URL没有协议时,按照http协议对待 此方法不对URL编码- Parameters:
httpUrl- URL字符串- Returns:
- UrlBuilder
-
ofHttp
使用URL字符串构建UrlBuilder,当传入的URL没有协议时,按照http协议对待,编码默认使用UTF-8- Parameters:
httpUrl- URL字符串- Returns:
- UrlBuilder
-
ofHttp
使用URL字符串构建UrlBuilder,当传入的URL没有协议时,按照http协议对待。- Parameters:
httpUrl- URL字符串charset- 编码,用于URLEncode和URLDecode- Returns:
- UrlBuilder
-
of
使用URL字符串构建UrlBuilder,默认使用UTF-8编码 注意:此方法如果提供的URL为非网络协议,自动尝试使用文件协议- Parameters:
url- URL字符串- Returns:
- UrlBuilder
-
of
使用URL字符串构建UrlBuilder- Parameters:
url- URL字符串charset- 编码,用于URLEncode和URLDecode- Returns:
- UrlBuilder
-
of
使用URL构建UrlBuilder- Parameters:
url- URLcharset- 编码,用于URLEncode和URLDecode- Returns:
- UrlBuilder
-
of
public static UrlBuilder of(String scheme, String host, int port, String path, String query, String fragment, Charset charset) 构建UrlBuilder- Parameters:
scheme- 协议,默认httphost- 主机,例如127.0.0.1port- 端口,-1表示默认端口path- 路径,例如/aa/bb/ccquery- 查询,例如a=1&b=2fragment- 标识符例如#后边的部分charset- 编码,用于URLEncode和URLDecode- Returns:
- UrlBuilder
-
of
public static UrlBuilder of(String scheme, String host, int port, UrlPath path, UrlQuery query, String fragment, Charset charset) 构建UrlBuilder- Parameters:
scheme- 协议,默认httphost- 主机,例如127.0.0.1port- 端口,-1表示默认端口path- 路径,例如/aa/bb/ccquery- 查询,例如a=1&b=2fragment- 标识符例如#后边的部分charset- 编码,用于URLEncode和URLDecode- Returns:
- UrlBuilder
-
of
创建空的UrlBuilder- Returns:
- UrlBuilder
-
getScheme
获取协议,例如http- Returns:
- 协议,例如http
-
setScheme
设置协议,例如http- Parameters:
scheme- 协议,例如http- Returns:
- this
-
getSchemeWithDefault
获取协议,例如http,如果用户未定义协议,使用默认的http协议- Returns:
- 协议,例如http
-
getHost
获取 主机,例如127.0.0.1- Returns:
- 主机,例如127.0.0.1
-
setHost
设置主机,例如127.0.0.1- Parameters:
host- 主机,例如127.0.0.1- Returns:
- this
-
getPort
public int getPort()获取端口,默认-1- Returns:
- 端口,默认-1
-
setPort
设置端口,默认-1- Parameters:
port- 端口,默认-1- Returns:
- this
-
getPortWithDefault
public int getPortWithDefault()获取端口,如果未自定义返回协议默认端口- Returns:
- 端口
-
getAuthority
获得authority部分- Returns:
- authority部分
-
getPath
获取路径,例如/aa/bb/cc- Returns:
- 路径,例如/aa/bb/cc
-
setPath
设置路径,例如/aa/bb/cc,将覆盖之前所有的path相关设置- Parameters:
path- 路径,例如/aa/bb/cc- Returns:
- this
-
getPaths
获得路径,例如/aa/bb/cc- Returns:
- 路径,例如/aa/bb/cc
-
addPath
增加路径,在现有路径基础上追加路径- Parameters:
path- 路径,例如aaa/bbb/ccc- Returns:
- this
-
setWithEndTag
是否path的末尾加 /- Parameters:
withEngTag- 是否path的末尾加 /- Returns:
- this
-
addPathSegment
增加路径节点,路径节点中的"/"会被转义为"%2F"- Parameters:
segment- 路径节点- Returns:
- this
-
getQuery
获取查询语句,例如a=1&b=2 可能为null- Returns:
- 查询语句,例如a=1&b=2,可能为
null
-
setQuery
设置查询语句,例如a=1&b=2,将覆盖之前所有的query相关设置- Parameters:
query- 查询语句,例如a=1&b=2- Returns:
- this
-
getQuerys
获取查询语句,例如a=1&b=2- Returns:
- 查询语句,例如a=1&b=2
-
addQuery
添加查询项,支持重复键,默认非严格模式- Parameters:
key- 键value- 值- Returns:
- this
-
getFragment
获取标识符,#后边的部分- Returns:
- 标识符,例如#后边的部分
-
setFragment
设置标识符,例如#后边的部分- Parameters:
fragment- 标识符,例如#后边的部分- Returns:
- this
-
getFragmentEncoded
获取标识符,#后边的部分- Returns:
- 标识符,例如#后边的部分
-
getCharset
获取编码,用于URLEncode和URLDecode- Returns:
- 编码
-
setCharset
设置编码,用于URLEncode和URLDecode- Parameters:
charset- 编码- Returns:
- this
-
build
创建URL字符串 -
toURL
转换为URL对象- Returns:
URL
-
toURL
转换为URL对象- Parameters:
handler-URLStreamHandler,null表示默认- Returns:
URL
-
toURI
转换为URI- Returns:
- URI
-
toString
-