添加html解析库和http网络请求库
http: ^0.12.0
html: ^0.13.4+1
构建实体存储banner图数据
class MovieNews {
String title;
String cover;
String summary;
String link;
MovieNews(this.title, this.cover, this.summary, this.link);
MovieNews.fromJson(Map data) {
title = data['title'];
summary = data['summary'];
cover = data['cover'];
link = data['link'];
}
}
获取网页中的数据
import 'dart:async';
import 'package:douban_flutter/model/movie_news.dart';
import 'package:html/dom.dart' as dom;
import 'package:html/parser.dart' show parse;
import 'package:http/http.dart' as http;
class ApiClient {
static const String baseUrl = 'http://api.douban.com/v2/movie/';
static const String apiKey = '0b2bdeda43b5688921839c8ecb20399b';
static const String webUrl = 'https://movie.douban.com/';
Future<List<MovieNews>> getNewsList() async{
List<MovieNews> news = [];
await http.get(webUrl).then((http.Response response){
var document = parse(response.body.toString());
List<dom.Element> items = document.getElementsByClassName('gallery-frame');
items.forEach((item) {
String cover