urlencode - urlencoding en Dart
(4)
Escribí esta pequeña función para convertir un mapa en una cadena codificada de URL, que puede ser lo que estás buscando.
String encodeMap((Map data) {
return data.keys.map((key) => "${Uri.encodeComponent(key)}=${Uri.encodeComponent(data[key])}").join("&");
}
¿Hay una función para hacer urlencoding en Dart? Estoy haciendo una llamada AJAX usando el objeto XMLHttpRequest y necesito que la url esté codificada para url
Hice una búsqueda en dartlang.org, pero no dio resultados.
No creo que haya todavía. Consulte http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.html y el método encodeComponent.
Tenga en cuenta que también le faltan algunos caracteres, necesita ser expandido. Dart realmente debería tener esto incorporado y fácil de conseguir. Puede que lo tenga, de hecho, pero no lo encontré.
Actualización : ahora hay soporte para codificar / decodificar URI en la clase Dart Uri
El código URI de Dart se coloca en una biblioteca separada llamada dart: uri (por lo que puede compartirse entre dart:html
y dart:io
). Parece que actualmente no incluye una función urlencode
por lo que su mejor alternativa por ahora es probablemente usar this implementación Dart del encodeUriComponent
de JavaScript.
var uri = ''http://example.org/api?foo=some message'';
var encoded = Uri.encodeFull(uri);
assert(encoded == ''http://example.org/api?foo=some%20message'');
var decoded = Uri.decodeFull(encoded);
assert(uri == decoded);
http://www.dartlang.org/docs/dart-up-and-running/contents/ch03.html#ch03-uri