zoukankan      html  css  js  c++  java
  • 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请求。
  • 相关阅读:
    Android studio界面相关设置
    HIVE和HBASE区别
    《梦断代码》经典语录--持续更新
    幽灵漏洞(Ghost gethost)
    服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
    thrift使用总结
    thrift学习总结
    IntelliJ IDEA配置Tomcat(完整版教程)
    sudo执行脚本找不到环境变量和命令
    W-TinyLFU——设计一个现代的缓存
  • 原文地址:https://www.cnblogs.com/crazycode2/p/11253117.html
Copyright © 2011-2022 走看看