flutter_net_demo
一个简单的flutter dio的封装, 包括: 日志打印, 网络进度, 返回json转bean, get post upload方法的封装, 简易可直接运行的demo
Getting Started
Clone & Run main.dart
网络相关代码在net目录, 直接复制即可使用
How to get bean
复制json字符串, 粘贴到json to dart的输入框, 点击Generate Dart之后就出现相应的Bean类, 粘贴到工程后再重命名
How to use
Config Common Params in basic_net_service.dart
- 通过getBasicUrl方法的返回值配置baseUrl
- 通过getHeaders配置基本header
- 通过getBasicParam配置基本网络参数
Add network loading view in basic_net_service.dart
重写方法request, 在网络进行中加上loading, 如果要对后端返回值进行处理也可以放在这个地方
Config server’s request API in app_api.dart
For example:
static const String _GET_WEATHER = "/";
Future<ResultData> getWeather(BuildContext context, bool showProgress) async {
Map<String, dynamic> param = {};
///?app=weather.future&weaid=1&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
param["app"] = "weather.future";
param["weaid"] = "1";
param["appkey"] = "10003";
param["sign"] = "b59bc3ef6191eb9f747dd4e83c99f2a4";
param["format"] = "json";
ResultData resultData =
await get(_GET_WEATHER, params: param, context: context, showLoad: showProgress);
resultData.toast();
return resultData;
}
Get it from github: FlutterDioSample & Demo
Run the demo from main.dart from which you can find the usage as below:
void _getWeather() async {
ResultData resultData = await AppApi.getInstance().getWeather(context, true);
if (resultData.isSuccess()) {
WeatherBean weatherBean = WeatherBean.fromJson(resultData.response);
Fluttertoast.showToast(msg: "成功获取本周天气, 显示周一天气");
setState(() {
weather = json.encode(weatherBean.result[1]);
});
}