Urlencoding в Дарт

Есть ли функция, выполняющая urlencoding в Dart? Я делаю вызов AJAX с использованием объекта XMLHttpRequest, и мне нужно, чтобы URL-адрес был закодирован в url.

Я сделал поиск на dartlang.org, но это не принесло никаких результатов.

Ответы

Ответ 1

Обновление: теперь есть поддержка кодирования/декодирования URI в классе Dart Uri

URI-код Dart помещается в отдельную библиотеку, которая называется dart: uri (поэтому она может использоваться совместно между dart:html и dart:io). Похоже, что в настоящее время он не включает функцию urlencode, поэтому на данный момент вашей лучшей альтернативой, вероятно, является использование этой реализации JavaScript в Dart encodeUriComponent.

Ответ 3

Я написал эту небольшую функцию для преобразования Map в строку в кодировке URL, которая может быть тем, что вы ищете.

String encodeMap(Map data) {
  return data.keys.map((key) => "${Uri.encodeComponent(key)}=${Uri.encodeComponent(data[key])}").join("&");
}

Ответ 4

Uri.encodeComponent(url); // To encode url
Uri.decodeComponent(encodedUrl); // To decode url

Ответ 5

Я не думаю, что есть еще. Проверьте http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.html и метод encodeComponent.

Заметьте, что ему не хватает некоторых символов, его нужно расширить. Дарт действительно должен иметь это встроенное и легкодоступное. Это может быть на самом деле, но я этого не нашел.