zoukankan      html  css  js  c++  java
  • Flutter从入门到入土(三)网络请求Dio

    1、网络请求

     1   Dio _dio = new Dio();
     2 
     3   Future getInformationJson(User user) async {
     4 
     5     var url = 'http://xxx/xxx/xxx?username=' + user._username +
     6         '&password=' + user._password;
     7 
     8     Response response = await _dio.get(url);
     9     if (response.statusCode == HttpStatus.ok) {
    10       var data = jsonDecode(response.toString());  //JSON数据的解析
    11       try{
    12         data['payload']['scores'].forEach((v) {
    13 //          print(v['className']);
    14           Scores score = new Scores(
    15               v['term'], v['className'], v['credit'].toString(), v['score'],
    16               v['gpa'].toString());
    17           user._scores.add(score);
    18         });
    19 
    20         user._avggpa = data['payload']['gpa'].toString();
    21         user._avgscore = data['payload']['avg'].toString();
    22         user._size = data['payload']['size'].toString();
    23       }catch(e){
    24         print(e);
    25       }
    26     }
    27     return user;
    28   }

    2、异步请求(在执行界面渲染的类当中)

    1   void initState() {
    2     super.initState();
    3     user = new User();
    4 
    5     information.getInformationJson(user).then((val){
    6       user = val;
    7       build(context);
    8     });
    9   }

    使用setState(() {});

     1   @override
     2   Widget build(BuildContext context){
     3     // TODO: implement build
     4 
     5     if(user._scores == null || user._scores.length == 0){
     6       return loadingWidget();
     7     }else{
     8       print('main');
     9       setState(() {});
    10       return mainWidget();
    11     }
    12   }

    当user获得到数据后就会重新渲染页面(loadingWidget ==> mainWidget)

    每天进步一点点
  • 相关阅读:
    程序员书单
    36条极简人生建议
    Nacos
    jvm详解
    22种世界500强都在用的高效工作方法,你了解几种?
    道德经39经典
    积累的力量
    JUC之线程间定制化通信
    JVM调优参考
    docker开机启动和dockercompose开机启动执行相应的各个docker容器
  • 原文地址:https://www.cnblogs.com/smallstars/p/12927286.html
Copyright © 2011-2022 走看看