Dartでurlencodingを実行する関数はありますか? XMLHttpRequestオブジェクトを使用してAJAX呼び出しを行っており、URLをURLエンコードする必要があります。
Dartlang.orgを検索しましたが、結果は出ませんでした。
Update: Dart Uriクラス でエンコード/デコードURIがサポートされるようになりました
DartのURIコードは Dart:uri と呼ばれる別のライブラリに配置されているため、両方のDart:html
およびDart:io
)。現在urlencode
関数が含まれていないようですので、現時点での最善の代替策は、おそらく this JavaScriptのencodeUriComponent
のDart実装を使用することです。
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
この小さな関数を作成して、マップをURLエンコードされた文字列に変換します。
String encodeMap(Map data) {
return data.keys.map((key) => "${Uri.encodeComponent(key)}=${Uri.encodeComponent(data[key])}").join("&");
}
Uri.encodeComponent(url); // To encode url
Uri.decodeComponent(encodedUrl); // To decode url
まだあるとは思いません。 http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.html とencodeComponentメソッドを確認してください。
一部の文字が不足していることに注意してください。拡張する必要があります。 Dartには、これが組み込まれていて簡単にアクセスできるはずです。実際にはあるかもしれませんが、見つかりませんでした。