A parsed URI, such as a URL.
To create a URI with specific components, useUri.new:
var httpsUri = Uri( scheme: 'https', host: 'dart.dev', path: '/guides/libraries/library-tour', fragment: 'numbers');print(httpsUri); // https://dart.dev/guides/libraries/library-tour#numbershttpsUri = Uri( scheme: 'https', host: 'example.com', path: '/page/', queryParameters: {'search': 'blue', 'limit': '10'});print(httpsUri); // https://example.com/page/?search=blue&limit=10final mailtoUri = Uri( scheme: 'mailto', path: 'John.Doe@example.com', queryParameters: {'subject': 'Example'});print(mailtoUri); // mailto:John.Doe@example.com?subject=ExampleHTTP and HTTPS URI
To create a URI with https scheme, useUri.https orUri.http:
final httpsUri = Uri.https('example.com', 'api/fetch', {'limit': '10'});print(httpsUri); // https://example.com/api/fetch?limit=10File URI
To create a URI from file path, useUri.file:
final fileUriUnix = Uri.file(r'/home/myself/images/image.png', windows: false);print(fileUriUnix); // file:///home/myself/images/image.pngfinal fileUriWindows = Uri.file(r'C:\Users\myself\Documents\image.png', windows: true);print(fileUriWindows); // file:///C:/Users/myself/Documents/image.pngIf the URI is not a file URI, calling this throwsUnsupportedError.
Directory URI
LikeUri.file except that a non-empty URI path ends in a slash.
final fileDirectory = Uri.directory('/home/myself/data/image', windows: false);print(fileDirectory); // file:///home/myself/data/image/final fileDirectoryWindows = Uri.directory('/data/images', windows: true);print(fileDirectoryWindows); // file:///data/images/URI from string
To create a URI from string, useUri.parse orUri.tryParse:
final uri = Uri.parse( 'https://dart.dev/guides/libraries/library-tour#utility-classes');print(uri); // https://dart.devprint(uri.isScheme('https')); // trueprint(uri.origin); // https://dart.devprint(uri.host); // dart.devprint(uri.authority); // dart.devprint(uri.port); // 443print(uri.path); // guides/libraries/library-tourprint(uri.pathSegments); // [guides, libraries, library-tour]print(uri.fragment); // utility-classesprint(uri.hasQuery); // falseprint(uri.data); // nullSee also:
Constructors
- Uri({String?scheme,String?userInfo,String?host,int?port,String?path,Iterable<
String> ?pathSegments,String?query,Map<String,dynamic> ?queryParameters,String?fragment}) - Creates a new URI from its components.factory
- Uri.dataFromBytes(List<
int> bytes, {StringmimeType ="application/octet-stream",Map<String,String> ?parameters,boolpercentEncoded =false}) - Creates a
data:URI containing an encoding ofbytes.factory - Uri.dataFromString(Stringcontent, {String?mimeType,Encoding?encoding,Map<
String,String> ?parameters,boolbase64 =false}) - Creates a
data:URI containing thecontentstring.factory - Uri.directory(Stringpath, {bool?windows})
- LikeUri.file except that a non-empty URI path ends in a slash.factory
- Uri.file(Stringpath, {bool?windows})
- Creates a new file URI from an absolute or relative file path.factory
- Uri.http(Stringauthority, [StringunencodedPath,Map<
String,dynamic> ?queryParameters]) - Creates a new
httpURI from authority, path and query.factory - Uri.https(Stringauthority, [StringunencodedPath,Map<
String,dynamic> ?queryParameters]) - Creates a new
httpsURI from authority, path and query.factory
Properties
- authority→String
- The authority component.no setter
- data→UriData?
- Access the structure of a
data:URI.no setter - fragment→String
- The fragment identifier component.no setter
- hasAbsolutePath→bool
- Whether the URI has an absolute path (starting with '/').no setter
- hasAuthority→bool
- Whether the URI has anauthority component.no setter
- hasEmptyPath→bool
- Whether the URI has an empty path.no setter
- hasFragment→bool
- Whether the URI has a fragment part.no setter
- hashCode→int
- Returns a hash code computed as
toString().hashCode.no setteroverride - hasPort→bool
- Whether the URI has an explicit port.no setter
- hasQuery→bool
- Whether the URI has a query part.no setter
- hasScheme→bool
- Whether the URI has ascheme component.no setter
- host→String
- The host part of the authority component.no setter
- isAbsolute→bool
- Whether the URI is absolute.no setter
- origin→String
- Returns the origin of the URI in the form scheme://host:port for theschemes http and https.no setter
- path→String
- The path component.no setter
- pathSegments→List<
String> - The URI path split into its segments.no setter
- port→int
- The port part of the authority component.no setter
- query→String
- The query component.no setter
- queryParameters→Map<
String,String> - The URI query split into a map according to the rulesspecified for FORM post in theHTML 4.01 specification section17.13.4.no setter
- queryParametersAll→Map<
String,List< String> > - Returns the URI query split into a map according to the rulesspecified for FORM post in theHTML 4.01 specification section17.13.4.no setter
- runtimeType→Type
- A representation of the runtime type of the object.no setterinherited
- scheme→String
- The scheme component of the URI.no setter
- userInfo→String
- The user info part of the authority component.no setter
Methods
- isScheme(
Stringscheme)→bool - Whether the scheme of thisUri is
scheme. - normalizePath(
)→Uri - Returns a URI where the path has been normalized.
- noSuchMethod(
Invocationinvocation)→ dynamic - Invoked when a nonexistent method or property is accessed.inherited
- removeFragment(
)→Uri - Creates a
Urithat differs from this only in not having a fragment. - replace(
{String?scheme,String?userInfo,String?host,int?port,String?path,Iterable< String> ?pathSegments,String?query,Map<String,dynamic> ?queryParameters,String?fragment})→Uri - Creates a new
Uribased on this one, but with some parts replaced. - resolve(
Stringreference)→Uri - Resolve
referenceas an URI relative tothis. - resolveUri(
Urireference)→Uri - Resolve
referenceas a URI relative tothis. - toFilePath(
{bool?windows})→String - Creates a file path from a file URI.
- toString(
)→String - The normalized string representation of the URI.override
Operators
- operator ==(
Objectother)→bool - A URI is equal to another URI with the same normalized representation.override
Static Properties
Static Methods
- decodeComponent(
StringencodedComponent)→String - Decodes the percent-encoding in
encodedComponent. - decodeFull(
Stringuri)→String - Decodes the percent-encoding in
uri. - decodeQueryComponent(
StringencodedComponent, {Encodingencoding =utf8})→String - Decodes the percent-encoding in
encodedComponent, convertingpluses to spaces. - encodeComponent(
Stringcomponent)→String - Encode the string
componentusing percent-encoding to make itsafe for literal use as a URI component. - encodeFull(
Stringuri)→String - Encodes the string
uriusing percent-encoding to make itsafe for literal use as a full URI. - encodeQueryComponent(
Stringcomponent, {Encodingencoding =utf8})→String - Encodes the string
componentaccording to the HTML 4.01 rulesfor encoding the posting of a HTML form as a query stringcomponent. - parse(
Stringuri, [intstart =0,int?end])→Uri - Creates a new
Uriobject by parsing a URI string. - parseIPv4Address(
Stringhost, [intstart =0,int?end])→List< int> - Parses the
hostas an IP version 4 (IPv4) address, returning the addressas a list of 4 bytes in network byte order (big endian). - parseIPv6Address(
Stringhost, [intstart =0,int?end])→List< int> - Parses the
hostas an IP version 6 (IPv6) address. - splitQueryString(
Stringquery, {Encodingencoding =utf8})→Map< String,String> - Splits the
queryinto a map according to the rulesspecified for FORM post in theHTML 4.01 specification section17.13.4. - tryParse(
Stringuri, [intstart =0,int?end])→Uri? - Creates a new
Uriobject by parsing a URI string.