UriContext
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
Members list
Value members
Concrete methods
Parse the given string (with embedded expressions) as an uri.
Parse the given string (with embedded expressions) as an uri.
Any values embedded in the URI using the ${...}
syntax will be URL-encoded, taking into account the context. Parts of the URI given as literal strings (not embedded values), are assumed to be URL-encoded and thus will be decoded when creating the Uri
instance.
Embedded values can be optional for hosts (subdomains) query parameters and the fragment. If the value is None
, the appropriate URI component will be removed.
Sequences in the host part will be expanded to a subdomain sequence, and sequences in the path will be expanded to path components. Maps, sequences of tuples and sequences of values can be embedded in the query part. They will be expanded into query parameters. Maps and sequences of tuples can also contain optional values, for which mappings will be removed if None
.
All components of the URI can be embedded from values: scheme, username/password, host, port, path, query and fragment. The embedded values won't be further parsed, with the exception of the :
in the host part, which is commonly used to pass in both the host and port.
If a string containing the protocol is embedded at the very beginning, it will not be escaped, allowing to embed entire addresses as prefixes, e.g.: uri"$endpoint/login"
, where val endpoint = "http://example.com/api"
. This is useful when a base URI is stored in a value, and can then be used as a base for constructing more specific URIs.
Attributes
- Throws
-
IllegalArgumentException
In case of a validation error. For a safe version, see Uri.parse.