flutter 入门与实战


在这里插入图片描述

添加html解析库和http网络请求库

  http: ^0.12.0
  html: ^0.13.4+1

构建实体存储banner图数据

/// 首页新闻 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;
//show关键字表示只引用一点
import 'package:html/parser.dart' show parse;
//as指定固定前缀
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());
        // 获取所有指定类名的元素gallery-frame获取轮播图数据
        List<dom.Element> items = document.getElementsByClassName('gallery-frame');
        items.forEach((item) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值