导入'dart:html'失败

问题描述

我正在尝试使用Stream<String>获取一些数据,但无法导入。我正在使用Dart VM。

我尝试过

  • forEach这给了我HttpResponse.getString()
  • import 'dart:html',但此软件包没有Error: Not found: 'dart:html'
  • import 'package:http/http.dart具有类,但没有HttpRequest方法

这是我的代码

import 'dart:io'

为什么我不能访问这个类和方法

解决方法

您如何运行程序?

  • dart:html仅适用于在浏览器中运行的应用程序。
  • package:httpdart:html不同,因此具有其他类。但是您可以通过使用该程序包来实现相同的目的。
  • dart:io仅在Dart VM运行应用程序时可用。但是您可以使用它来达到相同的目的,但是您需要以不同的方式编写代码。

由于收到错误Error: Not found: 'dart:html',因此我假设您正在尝试使它在Dart VM中正常工作。

如果您想使用http软件包,可以这样做,我认为这是获得所需内容的最简单方法:

import 'package:http/http.dart' as http;

Future<void> main() async {
  Future<String> data = http.read('localhost:8000');
  print(await data);
}

如果您想使用dart:io,可以这样做:

import 'dart:convert';
import 'dart:io';

Future<void> main() async {
  final clientRequest = await HttpClient().getUrl(Uri.parse('localhost:8000'));
  final clientResponse = await clientRequest.close();
  final data = await clientResponse
      .transform(const Utf8Decoder())
      .fold<StringBuffer>(
          StringBuffer(),(buffer,element) => buffer..write(element));
  print(data.toString());
}