Dart 侦听HttpClientResponse时总是抛出

Dart 侦听HttpClientResponse时总是抛出,dart,Dart,上面的代码不起作用,使用类似的方法来侦听,例如管道和折叠也会引发异常=>在异常时中断:null对象没有方法“取消”。 更新 下面是连接到本地计算机时的代码示例 import 'dart:io'; import 'dart:async'; void main() { HttpClient client = new HttpClient(); client.getUrl(Uri.parse('http://api.dartlang.org/docs/releases/latest/dar

上面的代码不起作用,使用类似的方法来侦听,例如
管道
折叠
也会引发异常=>
在异常时中断:null对象没有方法“取消”。

更新

下面是连接到本地计算机时的代码示例

import 'dart:io';
import 'dart:async';

void main() {
  HttpClient client = new HttpClient();
  client.getUrl(Uri.parse('http://api.dartlang.org/docs/releases/latest/dart_io/HttpClientResponse.html'))
    .then((HttpClientRequest request) => request.close())
    .then((HttpClientResponse response) {
      response.listen(print, onError: (e) {
        print('error: $e');
      }); 
    });
}
它首先打印出字节,然后抛出异常
在异常时中断:null对象没有“cancel”方法。


Dart编辑器版本0.7.2_r27268。Dart SDK版本0.7.2.1_UR27268。在Windows 64位计算机上。

您的示例适用于我的计算机


请指定您的Dart版本和其他有助于调试问题的系统属性。

显示的代码看起来很好,我无法在0.7.2.1或Leading edge上重现该错误。您知道您的网络是否有任何可能导致直接HTTP连接失败的代理设置吗?您可以尝试连接到本地计算机上的服务器。如果仍然失败,我建议在上打开一个bug,并提供详细信息。

是的,即使连接到本地计算机,它仍然失败,也许我应该提交一个bug。仅供参考,我用连接到本地计算机的代码更新了帖子。
import 'dart:io';
import 'dart:async';

void main() {
  HttpServer.bind('127.0.0.1', 8080)
    .then((HttpServer server) {
      server.listen((HttpRequest request) {
        File f = new File('upload.html');
        f.openRead().pipe(request.response);
      });

      HttpClient client = new HttpClient();
      client.getUrl(Uri.parse('http://127.0.0.1:8080'))
        .then((HttpClientRequest request) => request.close())
          .then((HttpClientResponse response) {
            response.listen(print, onError: (e) {
              print('error: $e');
            });
          });
    });
}