2012-04-20 14 views
14

Esiste una funzione per eseguire l'urlencoding in Dart? Sto facendo una chiamata AJAX usando l'oggetto XMLHttpRequest e ho bisogno che l'url sia codificato in url.urlencoding in Dart

Ho fatto una ricerca su dartlang.org, ma non ha dato alcun risultato.

risposta

11

Aggiornamento: ora c'è il supporto per la codifica/decodifica URI in the Dart Uri class

codice URI del Dart è collocato in una libreria separata denominata dart:uri (in modo che possono essere condivise tra dart:html e dart:io). Sembra che al momento non includa una funzione urlencode quindi la tua migliore alternativa per ora è probabilmente quella di utilizzare l'implementazione Dart this di JavaScript encodeUriComponent.

+0

credo di poter vivere con lui per ora. Ma sarebbe bello se questo fosse aggiunto al dardo: uri. – Sudar

+0

@Sudar sono d'accordo, proverò a fare un po 'di rumore per ottenerlo nel dardo –

+1

: uri è stato rimosso, ora fa parte del nucleo. https://groups.google.com/a/dartlang.org/forum/#!topic/misc/pHyoawHOhU0 – Max

7

Ho scritto questa piccola funzione per convertire una mappa in una stringa con codifica URL, che potrebbe essere ciò che stai cercando.

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