Flutter & 鸿蒙 Next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
在现代移动应用开发中,网络请求是不可或缺的一部分,而用户身份验证和免登录缓存机制对于提升用户体验尤为重要。Dio 是一个强大的 Dart HTTP 客户端,支持多种功能,例如请求拦截、响应拦截等。本文将详细讲解如何在 Flutter 中使用 Dio 封装网络请求,并实现登录身份验证及免登录缓存功能。
一、引入 Dio
首先,在 pubspec.yaml 文件中添加 Dio 和 shared_preferences 依赖:
运行 flutter pub get 命令安装依赖。
二、封装 Dio 网络请求工具
(一)创建 Dio 封装类
在 lib/services 目录下新建 network_service.dart 文件,编写以下代码以封装 Dio 功能:
(二)代码详解
Token 存储
使用
shared_preferences存储用户的 Token,以便后续请求中使用。_getToken()方法用于获取存储的 Token。登录请求
login方法发送用户名和密码进行身份验证,成功后保存返回的 Token。请求拦截
在请求拦截器中,检查是否有 Token,如果有,则添加到请求头中。
退出登录
logout方法移除存储的 Token,以实现用户登出。
三、使用封装的 NetworkService
在 Flutter 应用中使用 NetworkService 进行身份验证非常简单。以下示例展示了如何创建一个登录界面。
(一)创建登录界面
在 lib/main.dart 文件中编写以下代码:
(二)代码详解
输入框
使用
TextField组件获取用户名和密码。登录按钮
点击按钮后调用
_login方法进行登录。状态管理
通过
setState更新界面,显示登录结果。
四、总结
通过封装 Dio,我们实现了用户身份验证与 Token 的存储和使用。使用 shared_preferences 实现简单的免登录缓存机制,提高用户体验。希望本文能帮助你更好地在 Flutter 中使用 Dio 进行网络请求与身份验证。如有疑问或建议,欢迎讨论!









评论