【问题标题】:urlencoding in DartDart 中的 urlencoding
【发布时间】:2012-05-02 02:08:00
【问题描述】:

Dart 中是否有进行 urlencoding 的功能?我正在使用 XMLHttpRequest 对象进行 AJAX 调用,我需要对 url 进行 url 编码。

我在 dartlang.org 上进行了搜索,但没有找到任何结果。

【问题讨论】:

    标签: urlencode dart


    【解决方案1】:

    更新:现在支持the Dart Uri class中的编码/解码URI

    Dart 的 URI 代码放置在名为 dart:uri 的单独库中(因此它可以在 dart:htmldart:io 之间共享)。看起来它目前不包含 urlencode 函数,所以目前最好的选择可能是使用 JavaScript 的 encodeUriComponentthis Dart 实现。

    【讨论】:

    【解决方案2】:

    我认为还没有。查看http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.html 和 encodeComponent 方法。

    注意,它也缺少一些字符,需要扩展。 Dart 真的应该内置并且易于使用。它可能实际上有它,但我没有找到它。

    【讨论】:

      【解决方案3】:

      我编写了这个小函数来将 Map 转换为 URL 编码的字符串,这可能就是您要查找的内容。

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

      【讨论】:

        【解决方案4】:
        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

        【讨论】:

        • 出现错误 - URI 中的非法百分比编码
        【解决方案5】:
        Uri.encodeComponent(url); // To encode url
        Uri.decodeComponent(encodedUrl); // To decode url
        

        【讨论】:

          【解决方案6】:

          flutter 中的安全 URL 编码
          例如。

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

          在获取请求的情况下:

          Uri.encodeComponent(url+postDataKey+postData);
          

          如果是发布数据请求,请使用 flutter_inappwebview

          var data = postDataKey + Uri.encodeComponent(postData);
          webViewController.postUrl(url: Uri.parse(url), postData: utf8.encode(data));
          

          【讨论】:

            猜你喜欢
            • 2010-09-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多