public abstract class UriUtils extends Object
There are two types of encode methods:
"encodeXyz"
-- these encode a specific URI component (e.g. path,
query) by percent encoding illegal characters, which includes non-US-ASCII
characters, and also characters that are otherwise illegal within the given
URI component type, as defined in RFC 3986. The effect of this method, with
regards to encoding, is comparable to using the multi-argument constructor
of URI
.
"encode"
and "encodeUriVariables"
-- these can be used
to encode URI variable values by percent encoding all characters that are
either illegal, or have any reserved meaning, anywhere within a URI.
Constructor and Description |
---|
UriUtils() |
Modifier and Type | Method and Description |
---|---|
static String |
decode(String source,
Charset charset)
Decode the given encoded URI component.
|
static String |
decode(String source,
String encoding)
Decode the given encoded URI component.
|
static String |
encode(String source,
Charset charset)
Encode all characters that are either illegal, or have any reserved
meaning, anywhere within a URI, as defined in
RFC 3986.
|
static String |
encode(String source,
String encoding)
Variant of
encode(String, Charset) with a String charset. |
static String |
encodeAuthority(String authority,
Charset charset)
Encode the given URI authority with the given encoding.
|
static String |
encodeAuthority(String authority,
String encoding)
Encode the given URI authority with the given encoding.
|
static String |
encodeFragment(String fragment,
Charset charset)
Encode the given URI fragment with the given encoding.
|
static String |
encodeFragment(String fragment,
String encoding)
Encode the given URI fragment with the given encoding.
|
static String |
encodeHost(String host,
Charset charset)
Encode the given URI host with the given encoding.
|
static String |
encodeHost(String host,
String encoding)
Encode the given URI host with the given encoding.
|
static String |
encodePath(String path,
Charset charset)
Encode the given URI path with the given encoding.
|
static String |
encodePath(String path,
String encoding)
Encode the given URI path with the given encoding.
|
static String |
encodePathSegment(String segment,
Charset charset)
Encode the given URI path segment with the given encoding.
|
static String |
encodePathSegment(String segment,
String encoding)
Encode the given URI path segment with the given encoding.
|
static String |
encodePort(String port,
Charset charset)
Encode the given URI port with the given encoding.
|
static String |
encodePort(String port,
String encoding)
Encode the given URI port with the given encoding.
|
static String |
encodeQuery(String query,
Charset charset)
Encode the given URI query with the given encoding.
|
static String |
encodeQuery(String query,
String encoding)
Encode the given URI query with the given encoding.
|
static String |
encodeQueryParam(String queryParam,
Charset charset)
Encode the given URI query parameter with the given encoding.
|
static String |
encodeQueryParam(String queryParam,
String encoding)
Encode the given URI query parameter with the given encoding.
|
static MultiValueMap<String,String> |
encodeQueryParams(MultiValueMap<String,String> params)
Encode the query parameters from the given
MultiValueMap with UTF-8. |
static String |
encodeScheme(String scheme,
Charset charset)
Encode the given URI scheme with the given encoding.
|
static String |
encodeScheme(String scheme,
String encoding)
Encode the given URI scheme with the given encoding.
|
static Map<String,String> |
encodeUriVariables(Map<String,?> uriVariables)
Convenience method to apply
encode(String, Charset) to all
given URI variable values. |
static Object[] |
encodeUriVariables(Object... uriVariables)
Convenience method to apply
encode(String, Charset) to all
given URI variable values. |
static String |
encodeUserInfo(String userInfo,
Charset charset)
Encode the given URI user info with the given encoding.
|
static String |
encodeUserInfo(String userInfo,
String encoding)
Encode the given URI user info with the given encoding.
|
static String |
extractFileExtension(String path)
Extract the file extension from the given URI path.
|
public static String encodeScheme(String scheme, String encoding)
scheme
- the scheme to be encodedencoding
- the character encoding to encode topublic static String encodeScheme(String scheme, Charset charset)
scheme
- the scheme to be encodedcharset
- the character encoding to encode topublic static String encodeAuthority(String authority, String encoding)
authority
- the authority to be encodedencoding
- the character encoding to encode topublic static String encodeAuthority(String authority, Charset charset)
authority
- the authority to be encodedcharset
- the character encoding to encode topublic static String encodeUserInfo(String userInfo, String encoding)
userInfo
- the user info to be encodedencoding
- the character encoding to encode topublic static String encodeUserInfo(String userInfo, Charset charset)
userInfo
- the user info to be encodedcharset
- the character encoding to encode topublic static String encodeHost(String host, String encoding)
host
- the host to be encodedencoding
- the character encoding to encode topublic static String encodeHost(String host, Charset charset)
host
- the host to be encodedcharset
- the character encoding to encode topublic static String encodePort(String port, String encoding)
port
- the port to be encodedencoding
- the character encoding to encode topublic static String encodePort(String port, Charset charset)
port
- the port to be encodedcharset
- the character encoding to encode topublic static String encodePath(String path, String encoding)
path
- the path to be encodedencoding
- the character encoding to encode topublic static String encodePath(String path, Charset charset)
path
- the path to be encodedcharset
- the character encoding to encode topublic static String encodePathSegment(String segment, String encoding)
segment
- the segment to be encodedencoding
- the character encoding to encode topublic static String encodePathSegment(String segment, Charset charset)
segment
- the segment to be encodedcharset
- the character encoding to encode topublic static String encodeQuery(String query, String encoding)
query
- the query to be encodedencoding
- the character encoding to encode topublic static String encodeQuery(String query, Charset charset)
query
- the query to be encodedcharset
- the character encoding to encode topublic static String encodeQueryParam(String queryParam, String encoding)
queryParam
- the query parameter to be encodedencoding
- the character encoding to encode topublic static String encodeQueryParam(String queryParam, Charset charset)
queryParam
- the query parameter to be encodedcharset
- the character encoding to encode topublic static MultiValueMap<String,String> encodeQueryParams(MultiValueMap<String,String> params)
MultiValueMap
with UTF-8.
This can be used with UriComponentsBuilder.queryParams(MultiValueMap)
when building a URI from an already encoded template.
MultiValueMap<String, String> params = new LinkedMultiValueMap<>(2);
// add to params...
ServletUriComponentsBuilder.fromCurrentRequest()
.queryParams(UriUtils.encodeQueryParams(params))
.build(true)
.toUriString();
params
- the parameters to encodeMultiValueMap
with the encoded names and valuespublic static String encodeFragment(String fragment, String encoding)
fragment
- the fragment to be encodedencoding
- the character encoding to encode topublic static String encodeFragment(String fragment, Charset charset)
fragment
- the fragment to be encodedcharset
- the character encoding to encode topublic static String encode(String source, String encoding)
encode(String, Charset)
with a String charset.source
- the String to be encodedencoding
- the character encoding to encode topublic static String encode(String source, Charset charset)
source
- the String to be encodedcharset
- the character encoding to encode topublic static Map<String,String> encodeUriVariables(Map<String,?> uriVariables)
encode(String, Charset)
to all
given URI variable values.uriVariables
- the URI variable values to be encodedpublic static Object[] encodeUriVariables(Object... uriVariables)
encode(String, Charset)
to all
given URI variable values.uriVariables
- the URI variable values to be encodedpublic static String decode(String source, String encoding)
See StringUtils.uriDecode(String, Charset)
for the decoding rules.
source
- the encoded Stringencoding
- the character encoding to useIllegalArgumentException
- when the given source contains invalid encoded sequencesStringUtils.uriDecode(String, Charset)
,
URLDecoder.decode(String, String)
public static String decode(String source, Charset charset)
See StringUtils.uriDecode(String, Charset)
for the decoding rules.
source
- the encoded Stringcharset
- the character encoding to useIllegalArgumentException
- when the given source contains invalid encoded sequencesStringUtils.uriDecode(String, Charset)
,
URLDecoder.decode(String, String)