Сделайте запрос http в дартс с дартс:io
Эй, я новичок и хочу взаимодействовать с API с помощью dart:io для получения файлов JSON. Я могу получить данные с помощью этого кода:
final HttpClient client = HttpClient();
client.getUrl(Uri.parse("https://api.themoviedb.org/3/movie/76341?api_key=fbe54362add6e62e0e959f0e7662d64e&language=fr"))
.then((HttpClientRequest request) {
return request.close();
})
.then((HttpClientResponse response) {
Map a;
print(a);
Но я хочу иметь карту с JSON, но я не могу это сделать. Если бы я мог получить строку, содержащую JSON, я мог бы сделать это сjson.decode();
Также известно, что ответ хранится в списке int, который представляет значения utf8 символов, так что с utf8.decode(responce.toList())
Я могу получить значение utf8, но responce.toList()
вернуть будущее, но даже если это может быть легко, я не знаю, как получить список.
1 ответ
Решение
import 'dart:convert';
import 'dart:io';
void main() async {
final client = HttpClient();
final request = await client.getUrl(Uri.parse(
'https://api.themoviedb.org/3/movie/76341?api_key=fbe54362add6e62e0e959f0e7662d64e&language=fr'));
final response = await request.close();
final contentAsString = await utf8.decodeStream(response);
final map = json.decode(contentAsString);
print(map);
}