Flutter移动电商实战 --(7)dio基础_POST请求的使用

这节学习一下POST请求的使用,其实POST和Get请求都是在工作中最重要的两种请求。比如我们要传递一组表单数据过去,这时候用Get请求就是不太合适的,使用POST比较好。

SingleChildScrollView Widget

在学习新内容之前,先来填一个昨天的坑,其实昨天的代码在最后演示是,是由一个异常的,异常内容如下:

I/flutter ( 6889):   verticalDirection: down
I/flutter ( 6889): ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
I/flutter ( 6889): ════════════════════════════════════════════════════════════════════════════════════════════════════

解决方案:

只要在超出的外层包裹一个SingleChildScrollView小部件就可以了,其实它就是一个可以滚动的widget框,没有组件实体(就是你看不出什么UI界面来)。代码如下

Widget build(BuildContext context) {
    return Container(      
        child: Scaffold(
          appBar: AppBar(title: Text('美好人间'),),
          body:SingleChildScrollView(
            child: Container(
              child: Column(
                children: <Widget>[
                  TextField(
                    controller:typeController,
                    decoration:InputDecoration (
                      contentPadding: EdgeInsets.all(10.0),
                      labelText: '美女类型',
                      helperText: '请输入你喜欢的类型'
                    ),
                    autofocus: false,
                  ),
                  RaisedButton(
                    onPressed:_choiceAction,
                    child: Text('选择完毕'),
                  ),
                  Text(
                    showText,
                      overflow:TextOverflow.ellipsis,
                      maxLines: 2,
                  ),
                  ],
              ),
            ) 
          )
        ),
    );
  }

这时候我们越界的那个警告就已经没有了,我们也可以开心的继续学习了。

EasyMock动态参数的实现

EasyMock在工作中我使用的也是比较多,因为要和后台同步开发,后台编写慢的时候,就需要我们先自己设置(应该说是模拟)需要的数据。那固定死的mock数据作起来很简单,我就不在这里讲了,动态数据如何处理,我在这里给出代码,视频中会有所讲解。

{
  success: true,
  data: {
    default: "jspang",
    _req: function({
      _req
    }) {
      return _req
    },
    name: function({
      _req,
      Mock
    }) {
      if (_req.query.name) {
        return _req.query.name + '走进了房间,来为你亲情服务';
      } else {
        return '随便来个妹子,服务就好';
      }
    }
  }
}

视频中我也会带着你建立一个这样的POST接口,如果学习文字版,这部分自己建立吧。总要给上帝一些特权吧。

Dio的POST使用

其实Post的使用非常简单,主题代码并没有什么改动,只是把原来的get换成Post就可以了。代码如下:

Future getHttp(String TypeText)async{
    try{
      Response response;
      var data={'name':TypeText};
      response = await Dio().post(
        "地址隐藏了,地址会单独发送给正版视频者",
          queryParameters:data
      );
      return response.data;
    }catch(e){
      return print(e);
    }
  }

我们这样程序就可以继续使用了,我们的大保健程序还是可以完美运行的。

这节课程所学到的知识点.

  • SingleChildScrollView: SingleChildScrollView小部件的使用技巧。
  • EasyMock动态参数的实现:我们讲解了一个EasyMock动态参数的实现方法。
  • Dio的Post请求: 学会利用dio的post请求。

 

posted @ 2019-07-26 21:52  每天都要进步一点点  阅读(1485)  评论(0编辑  收藏  举报