使用dart下载文件

Bud*_*sno 6 dart

我们可以dart用来下载文件吗?

例如在python中

Kai*_*ren 14

我正在使用HTTP包很多.如果要下载不大的文件,可以使用HTTP包进行更简洁的方法:

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

main() {
  http.get(url).then((response) {
    new File(path).writeAsBytes(response.bodyBytes);
  });
}
Run Code Online (Sandbox Code Playgroud)

Alexandre编写的内容对于较大的文件会表现得更好.如果您发现需要经常下载文件,请考虑为此编写辅助函数.


Ale*_*uin 11

Shailen的回答是正确的,甚至可以用Stream.pipe缩短一点.

import 'dart:io';

main() {
  new HttpClient().getUrl(Uri.parse('http://example.com'))
    .then((HttpClientRequest request) => request.close())
    .then((HttpClientResponse response) => 
        response.pipe(new File('foo.txt').openWrite()));
}
Run Code Online (Sandbox Code Playgroud)

  • 您的示例中存在内存泄漏,HttpClient 从未关闭。您必须调用“httpClient.close();”(Shailen 的响应会这样做)以避免在响应后保持连接处于活动状态。 (3认同)