18-Flutter移动电商实战-首页_火爆专区商品接口制作

博客围绕移动开发中接口相关操作展开。先介绍在service/service_method.dart里制作获取接口的方法,涉及Future异步操作;接着进行接口调试,利用StatefulWidget测试能否读出数据;最后对代码进行精简,使接口更通用,只需传递接口名称和参数即可使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、获取接口的方法

在service/service_method.dart里制作方法。我们先不接收参数,先把接口调通。

Future getHomePageBeloConten() async{

  try{
    print('开始获取下拉列表数据.................');
    Response response;
    Dio dio = new Dio();
    dio.options.contentType=ContentType.parse("application/x-www-form-urlencoded");
    int page=1;
    response = await dio.post(servicePath['homePageBelowConten'],data:page);
    if(response.statusCode==200){
      return response.data;
    }else{
      throw Exception('后端接口出现异常,请检测代码和服务器情况.........');
    }
  }catch(e){
      return print('ERROR:======>${e}');
  }

}

简单说一下 Future,在我们平时开发中我们是这样用的,首先给我们的函数后面加上 async 关键字,表示异步操作,然后函数返回值写成 Future,然后我们可以 new 一个 Future,逻辑前面加上一个 await关键字,然后可以使用future.then 等操作。

2、进行调试接口

接口对接的方法写好了,然后我们进行测试一下接口是否可以读出数据,如果能读出数据,就说明接口已经调通,我们就可以搞事情了。

因为这个新的类是由下拉刷新的,也就是动态的类,所以需要使用StatefulWidget。

代码如下:

class HotGoods extends StatefulWidget {
  _HotGoodsState createState() => _HotGoodsState();
}

class _HotGoodsState extends State<HotGoods{


   void initState() 
     super.initState();
      getHomePageBeloConten().then((val){
         print(val);
      });
   }

  @override
  Widget build(BuildContext context) {
    return Container(
       child:Text('1111'),
    );
  }
}
3、精简代码,来个通用接口

在写service_method.dart的时候,你会发现我们大部分的代码都是相同的,甚至复制一个方法后,通过简单的修改几个地方,就可以使用了。那就说明这个地方由优化的必要。让代码更通用更精简。

精简代码如下:

Future request(url,formData)async{
    try{
      print('开始获取数据...............');
      Response response;
      Dio dio = new Dio();
      dio.options.contentType=ContentType.parse("application/x-www-form-urlencoded");
      if(formData==null){
          response = await dio.post(servicePath[url]);
      }else{
          response = await dio.post(servicePath[url],data:formData);
      }
      if(response.statusCode==200){
        return response.data;
      }else{
          throw Exception('后端接口出现异常,请检测代码和服务器情况.........');
      }
    }catch(e){
        return print('ERROR:======>${e}');
    }

}

使用也是非常简单的,只要传递一个接口名称和相对参数就可以了。

request('homePageBelowConten',1).then((val){
    print(val);
});

转载于:https://www.cnblogs.com/niceyoo/p/11055811.html

flutter移动电商视频68节讲解 第01节:课程介绍 第02节:建立项目和编写入口文件 第03节:底部导航栏制作 第04节:打通底部导航栏 第05节:dio基础_引入和简单的Get请求 第06节:dio基础_Get请求和动态组件协作 第07节:dio基础_POST请求的使用 第08节:dio基础_伪造请求头获取数据 第09节:移动商城数据请求实战(好戏开始) 第10节:使用FlutterSwiper制作轮播效果 第11节:首页_屏幕适配方案和制作 第12节:首页导航区域编写 第13节:ADBanner组件的编写 第14节:首页_拨打电话操作 第15节:商品推荐区域制作 第16节:补充_切换后页面状态的保持 第17节:首页_楼层区域的编写 第18节:首页_火爆专区商品接口制作 第19节:首页_火爆专区界面制作 第20节:首页上拉加载更多功能的制作 第21节:列表页类别数据接口调试 第22节:JSON解析与复杂模型转换技巧 第23节:列表页大类展示效果制作 第24节:Provide状态管理基础 第25节:列表页_使用Provide控制子类-1 第26节:列表页_使用Provide控制子类-2 第27节:列表页现有Bug的完善 第28节:列表页_商品列表接口调试 第29节: 列表页_商品列表数据模型的建立 第30接:列表页_商品列表UI布局 第31节:列表页_商品列表交互效果制作 第32节:列表页_小类高亮交互效果制作 第33节:列表页_子类和商品列表切换 第34节:列表页_小Bug的修复 第35节:列表页_上拉加载功能的制作 第36节:Fluttertoast组件的介绍 第37节:路由_fluro引入和商品详细页建立 第38节:路由_fluro中Handler文件编写 第39节:路由_fluro的路由配置和静态化 第40节:路由_fluro的全局注入和使用 第41节:详细页_后台数据接口调试 第42节:详细页UI主页面架构搭建 第43节:路由_补充首页跳转到详细页 第44节:详细页_首屏自定义Widget编写 第45节:详细页_说明区域UI编写 第46节:详细页_自建TabBar Widget 第47节:详细页Flutterhtml插件的使用 第48节:详细页_详情和评论切换效果制作 第49节:详细页页_Stack作底部操作栏 第50节:持久化sharedpreferences基础1 第51节:购物车_添加商品 第52节:购物车_建立数据模型 第53节:购物车_大体结构布局 第54节:购物车_商品列表子项组件编写 第55节:购物车_制作底部结算栏的UI 第56节:购物车_制作数量加减按钮UI 第57节:购物车_在Model中增加选中字段 第58节:购物车_删除单个商品功能制作 第59节:购物车_计算商品价格和数量 第60节:购物车_商品选中功能制作 第61节:购物车_商品数量的加减操作 第62节:购物车_首页Provide化 让跳转随心所欲 第63节:购物车_详细页显示购物车商品数量 第64节:会员中心_首页头部布局 第65节:会员中心_订单区域UI编写 第66节:会员中心_编写ListTile的通用方法 第67课:加餐_高德地图插件的使用 第68节:加餐_极光推送插件使用-1 第69节:加餐_极光推送插件使用-2 后端接口API文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值