La clase Uri admite funciones para codificar y decodificar strings para su uso en URI (que podría conocer como URL). Estas funciones controlan caracteres que son exclusivos para URI, como & y =. Esta clase también analiza y expone los componentes de un URI: host, puerto, esquema, etc.
Codificación y decodificación de URI totalmente calificados
Los métodos encodeFull() y decodeFull() se utilizan para codificar y decodificar caracteres excepto aquellos con un significado especial en un URI (como /, :, &, #).
Ejemplo:
Dart
void main(){ var uri = 'https://example.org/api?foo=some message'; var encoded = Uri.encodeFull(uri); assert(encoded == 'https://example.org/api?foo=some%20message'); var decoded = Uri.decodeFull(encoded); print(uri == decoded); }
Producción:
true
Codificación y decodificación de componentes URI
Para codificar y decodificar todos los caracteres de una string que tienen un significado especial en un URI, incluidos (entre otros) /, & y :, utilice los métodos encodeComponent() y decodeComponent ( ) .
Ejemplo:
Dart
void main(){ var uri = 'https://example.org/api?foo=some message'; var encoded = Uri.encodeComponent(uri); assert(encoded == 'https%3A%2F%2Fexample.org%2Fapi%3Ffoo%3Dsome%20message'); var decoded = Uri.decodeComponent(encoded); print(uri == decoded); }
Producción:
true
Análisis de URI
Si tiene un objeto URI o una string URI, puede obtener sus partes utilizando campos URI como la ruta. Para crear un URI a partir de una string, utilice el método estático parse().
Ejemplo:
Dart
void main(){ var uri = Uri.parse('https://example.org:8080/foo/bar#frag'); assert(uri.scheme == 'https'); assert(uri.host == 'example.org'); assert(uri.path == '/foo/bar'); assert(uri.fragment == 'frag'); print(uri.origin == 'https://example.org:8080'); }
Producción:
true
Construcción de URI
Puede usar el constructor Uri() para construir un URI a partir de partes individuales
Ejemplo:
Dart
void main(){ var uri = Uri( scheme: 'https', host: 'example.org', path: '/foo/bar', fragment: 'frag'); print( uri.toString() == 'https://example.org/foo/bar#frag'); }
Producción:
true
Publicación traducida automáticamente
Artículo escrito por ddeevviissaavviittaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA