Flutter http 优雅的处理@RquestParam参数
2021/5/2 18:25:20
本文主要是介绍Flutter http 优雅的处理@RquestParam参数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、Uri注意事项
- 二、参数拼接工具类
- 三、实例
- 1.方法
- 2.调用
一、Uri注意事项
新版本url不在是String类型需要进行转化,否则报错。
我在flutter{参数类型’String’不能分配给参数类型’Uri’}[关闭]中使用http包时遇到了这个问题
Uri.parse(你的请求地址(String))
二、参数拼接工具类
/// 参数处理小工具 /// @author: dingwen /// @date: 2021/5/1 class ParamsUtil { /// map to uri static String mapToUri(Map map) { int index = 0; String uri = ''; map.forEach((key, value) { if (index == 0) { uri += "?" + '$key' + "=" + '$value'; } else if (index != map.length) { uri += "&" + '$key' + "=" + '$value'; } else { uri += '$key' + "=" + '$value'; } index++; }); return uri; } }
三、实例
1.方法
import 'dart:async'; import 'dart:convert'; import 'package:daily_score_mobile/model/student_info_model.dart'; import 'package:daily_score_mobile/model/student_model.dart'; import 'package:daily_score_mobile/util/params_util.dart'; import 'package:http/http.dart' as http; import 'package:daily_score_mobile/constant/api_constant.dart'; import 'package:fluttertoast/fluttertoast.dart'; /// student 数据访问接口 /// @author: dingwen /// @date: 2021/5/1 class StudentDao { /// 登录 static Future<StudentModel> login({Map data}) async { final response = await http.post(Uri.parse(login_uri), headers: {"content-type": "application/json"}, body: jsonEncode(data)).catchError((onError){ Fluttertoast.showToast(msg: "服务器异常,请联系管理员",); }); Utf8Decoder utf8decoder = Utf8Decoder(); // fix 中文乱码 var result = json.decode(utf8decoder.convert(response.bodyBytes)); if (result['code'] == 200) { return StudentModel.fromJson(result['data']); } else if (result['code'] == 400 || result['code'] == 600) { Fluttertoast.showToast(msg: "登录失败,用户名或密码错误!",); return null; }else {Fluttertoast.showToast(msg: "服务器异常,请联系管理员",); return null; } } }
2.调用
/// 登录 Future<bool> login() async { if (_account == null) { Fluttertoast.showToast(msg: "账号不能为空",); return Future.value(false); } if (_password == null) { Fluttertoast.showToast(msg: "密码不能为空",); return Future.value(false); } Map student = {"studentId": _account, "studentPassword": _password}; StudentModel studentModel = await StudentDao.login(data: student); if (studentModel != null) { PreferenceUtils.instance.saveString("studentId", studentModel.studentId); return Future.value(true); } else { return Future.value(false); } } }
这篇关于Flutter http 优雅的处理@RquestParam参数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南