Использование dart для загрузки файла
можем ли мы использовать dart
скачать файл?
например python
4 ответов
Shailen это правильно и может быть даже немного короче с поток.труба!--3-->.
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()));
}
import 'package:http/http.dart' as http;
main() {
http.get(url).then((response) {
new File(path).writeAsBytes(response.bodyBytes);
});
}
то, что написал Александр, будет лучше работать для больших файлов. Подумайте о написании вспомогательной функции для этого, если вам часто нужно загружать файлы.
пример python, связанный с вопросом, включает запрос содержимого example.com
и запись ответа в файл.
вот как вы можете сделать что-то подобное в Dart:
import 'dart:io';
main() {
var url = Uri.parse('http://example.com');
var httpClient = new HttpClient();
httpClient.getUrl(url)
.then((HttpClientRequest request) {
return request.close();
})
.then((HttpClientResponse response) {
response.transform(new StringDecoder()).toList().then((data) {
var body = data.join('');
print(body);
var file = new File('foo.txt');
file.writeAsString(body).then((_) {
httpClient.close();
});
});
});
}
мы можем использовать http.readBytes(URL-адрес).
ждем файл(путь).writeAsBytes (ожидание http.readBytes('https://picsum.фото/200/300/?random'));