52

Dartでurlencodingを行う機能はありますか?XMLHttpRequestオブジェクトを使用してAJAX呼び出しを行っていますが、URLをURLエンコードする必要があります。

dartlang.orgで検索しましたが、結果が得られませんでした。

4

6 に答える 6

71
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

于 2013-07-01T14:44:42.233 に答える
36

更新: DartUriクラスでURIのエンコード/デコードがサポートされるようになりました

DartのURIコードは、dart:uridart:htmlと呼ばれる別のライブラリに配置されます(したがって、との間で共有できますdart:io)。現在、関数が含まれていないようurlencodeです。そのため、現時点での最善の代替策は、おそらくこのJavaScriptのDart実装を使用することencodeUriComponentです。

于 2012-04-20T13:33:28.637 に答える
26

マップをURLエンコードされた文字列に変換するこの小さな関数を作成しました。これは、探しているものかもしれません。

String encodeMap(Map data) {
  return data.keys.map((key) => "${Uri.encodeComponent(key)}=${Uri.encodeComponent(data[key])}").join("&");
}
于 2012-08-28T14:23:15.163 に答える
22
Uri.encodeComponent(url); // To encode url
Uri.decodeComponent(encodedUrl); // To decode url
于 2019-04-16T14:35:06.580 に答える
3

まだあるとは思いません。http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.htmlとencodeComponentメソッドを確認してください。

一部の文字が不足していることに注意してください。拡張する必要があります。Dartには、これが組み込まれていて、簡単にアクセスできる必要があります。実際にあるかもしれませんが、見つかりませんでした。

于 2012-04-20T14:07:39.873 に答える
0

フラッターでの安全なURLエンコード

String url  = 'http://example.org/';
String postDataKey = "requestParam="
String postData = 'hdfhghdf+fdfbjdfjjndf'

getリクエストの場合:

Uri.encodeComponent(url+postDataKey+postData);

ポストデータリクエストの場合は、flutter_inappwebviewライブラリを使用します

var data = postDataKey + Uri.encodeComponent(postData);
webViewController.postUrl(url: Uri.parse(url), postData: utf8.encode(data));
于 2021-08-15T08:37:10.157 に答える