博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
18-Flutter移动电商实战-首页_火爆专区商品接口制作
阅读量:6611 次
发布时间:2019-06-24

本文共 2152 字,大约阅读时间需要 7 分钟。

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
 {
   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

你可能感兴趣的文章
kvm cgroup的使用
查看>>
分享申请IDP账号的过程,包含duns申请的分享
查看>>
参加PMP考试须知
查看>>
java学习
查看>>
Android studio教程与问题汇总
查看>>
Confluence 6 通过 SSL 或 HTTPS 运行
查看>>
Android WebView与网页JS相互调用
查看>>
java工程师linux命令,这篇文章就够了
查看>>
计算机网络
查看>>
MySQL数据类型表
查看>>
git 打标签,删除标签,推送标签到远程
查看>>
nginx(四)fastcgi相关配置
查看>>
qemu-img 命令
查看>>
共享文件权限分配
查看>>
SVG矢量图像:微笑
查看>>
Visual Studio Code 多行注释与取消多行注释
查看>>
CentOS7安装配置phpMyAdmin
查看>>
WebView
查看>>
Eclipse快捷键
查看>>
maven学习九之pom.xml或settings.xml对nexus的配置
查看>>