blob: ab725b713cff0d84a6d97177fe2bbd53c6d29362 [file] [edit]
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:convert';
import 'dart:io';
Future<String> downloadText(String uri) async {
final client = HttpClient();
try {
final request = await client.getUrl(Uri.parse(uri));
final response = await request.close();
if (response.statusCode != HttpStatus.ok) {
throw HttpException(
'Failed to download $uri (${response.statusCode})',
uri: Uri.parse(uri),
);
}
return await response.transform(utf8.decoder).join();
} finally {
client.close();
}
}
Future<Object?> downloadJson(String uri) async =>
jsonDecode(await downloadText(uri));