我正在尝试使用Stream<String>
来获取一些数据,但无法导入。我正在使用Dart VM。
我尝试过
forEach
这给了我HttpResponse.getString()
import 'dart:html'
,但此软件包没有Error: Not found: 'dart:html'
类import 'package:http/http.dart
具有类,但没有HttpRequest
方法这是我的代码
import 'dart:io'
为什么我不能访问这个类和方法?
答案 0 :(得分:1)
您如何运行程序?
dart:html
仅适用于在浏览器中运行的应用程序。package:http
与dart: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());
}