这节学习一下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请求。