В этой статье описано, как я запрашиваю внутренний интерфейс для получения данных при разработке Flutter.Используемые пакеты:http
используется для отправки запросов,async
поставкаFuture
абстрактные классы иconvert
Используется для преобразования данных json в объекты в dart.
первое использованиеflutter create xxx
Команда или IDEA для создания нового проекта Flutter, удаления примера кода и добавления необходимых зависимостей.
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
Определите требуемый класс данных в соответствии с данными, возвращаемыми интерфейсом, например, данные, возвращаемые интерфейсом, представляют собой список данных.
[
{
"mal_id": 199,
"rank": 4,
"url": "https://myanimelist.net/anime/199/Sen_to_Chihiro_no_Kamikakushi",
"image_url": "https://myanimelist.cdn-dena.com/r/100x140/images/anime/6/79597.jpg?s=63a85532fc52356a938354277201d43c",
"title": "Sen to Chihiro no Kamikakushi",
"type": "Movie",
"score": 8.91,
"members": 730646,
"airing_start": "Jul 2001",
"airing_end": "Jul 2001",
"episodes": 1
}
]
Определение полей данных по мере необходимостиAnimate
Добрый,Animate.fromJson
метод использует данные json для созданияAnimate
пример
class Animate {
final int rank;
final String imgUrl;
final String title;
final double score;
final String url;
final String airingStart;
final String airingEnd;
Animate({
this.rank,
this.imgUrl,
this.title,
this.score,
this.url,
this.airingStart,
this.airingEnd,
});
factory Animate.fromJson(Map<String, dynamic> json) {
return Animate(
rank: json['rank'] as int,
imgUrl: json['image_url'] as String,
title: json['title'] as String,
score: json['score'] as double,
url: json['url'] as String,
airingStart: json['airing_start'] as String,
airingEnd: json['airing_end'] as String,
);
}
}
использовать послеhttp
Отправьте запрос, определитеStatefulWidget
и этоState
класс, определите переменную для хранения данных, определите метод для получения данных, а затем переопределитеinitState
метод, вinitState
Метод вызова данных запроса в методе
StatelessWidget
класс для каждого элемента в списке, этот класс требуетAnimate
экземпляр класса для заполнения данныхпоследнее использованиеListView.builder
Метод создания ListView
Готовый эффект показан на рисунке