现在`dart:uri`在哪里?

时间:2013-07-14 04:58:23

标签: uri dart

我想致电decodeUrl(...),我这样做是:

import "dart:uri";

main() {
    decodeUrl("str");
}

但是现在使用最新的Dart-SDK,它会报告:

Do not know how to load 'dart:uri'
import 'dart:uri';
^

似乎已从SDK中删除。我搜索了很多但仍然不知道它现在在哪里。如何使用最新的SDK decodeUrl(...)

2 个答案:

答案 0 :(得分:7)

根据this post to the Dart announcement listdart:uri已替换为核心Uri类。

您的代码转换为:

main() {
  decodeUrl("str");
}

虽然写print(Uri.decodeFull("str%20here"));可能更有启发性。

答案 1 :(得分:4)

来自Dart新版本的公告,重大变化以及其他重要新闻。

图书馆飞镖:uri被删除,Uri课程被添加到核心。

图书馆dart:uri已被删除。

改变了什么?

图书馆dart:uri已被删除。

班级Uri现在位于core libraryencodeUriComponent中的enocdeUridecodeUriComponentdecodeUridart:uri顶级函数已移至静态方法Uri.encodeComponentUri.enocdeFullUri.decodeComponentUri.decodeFull

构造函数Uri.fromComponents已重命名为Uri,之前的Uri构造函数不再可用,但必须替换为静态方法Uri的调用.parse。

最后,从Uri.encodeComponentUri.decodeComponent删除了对空间加上空间编码/解码的处理空间。要获得此编码/解码,请使用添加的静态方法Uri.encodeQueryComponentUri.decodeQueryComponent

除此之外,Uri类还有其他功能。有关更多信息,请参阅更改和dartdoc。

Uri课程的dartdoc将在未来几天内得到改善。

谁受影响?

dart的用户:uri。

如何更新我的代码?

new Uri(...)的使用更改为Uri.parse(...)

将新Uri.fromComponents(...)的使用更改为new Uri(...)

encodeUriComponentenocdeUridecodeUriComponentdecodeUri的来电更改为对Uri.encodeComponentUri.enocdeFullUri.decodeComponent的来电, Uri.decodeFull

最后检查一下,encodeUriComponentdecodeUriComponent将空格更改为加号,加上空格。如果是,请使用Uri.encodeQueryComponentUri.decodeQueryComponent代替Uri.encodeComponentUri.decodeComponent