This commit is contained in:
vipg
2025-11-13 17:53:04 +08:00
parent cc33c46ef3
commit 90c5290635

View File

@@ -31,6 +31,9 @@ class _LoginPageState extends State<LoginPage> {
return; return;
} }
// 新增:打印输入的账号密码(注意:生产环境需移除密码日志)
debugPrint('准备登录 - 账号: $account, 密码长度: ${password.length}');
setState(() { setState(() {
_isLoading = true; _isLoading = true;
}); });
@@ -45,20 +48,38 @@ class _LoginPageState extends State<LoginPage> {
// 初始化Dio实例 // 初始化Dio实例
final dio = Dio(); final dio = Dio();
// 新增打印Dio配置信息
debugPrint(
'Dio基础配置 - 超时设置: 连接${dio.options.connectTimeout}, 发送${dio.options.sendTimeout}, 接收${dio.options.receiveTimeout}',
);
// 准备请求数据
final requestData = {'account': account, 'password': password};
// 新增:打印请求参数
debugPrint('请求参数: $requestData');
// 准备请求头
final requestHeaders = {'Content-Type': 'application/json'};
// 新增:打印请求头
debugPrint('请求头: $requestHeaders');
// 发送POST请求 // 发送POST请求
debugPrint('开始发送登录请求...');
final response = await dio.post( final response = await dio.post(
url, url,
data: {'account': account, 'password': password}, data: requestData,
options: Options( options: Options(
headers: {'Content-Type': 'application/json'}, headers: requestHeaders,
responseType: ResponseType.json, responseType: ResponseType.json,
), ),
); );
// 新增:请求发送成功的日志
debugPrint('请求发送成功,开始处理响应');
// 解析响应 // 解析响应
if (response.statusCode == 200) { if (response.statusCode == 200) {
final result = response.data; final result = response.data;
// 打印后端返回的完整数据确认code和状态
debugPrint('登录响应:$result'); debugPrint('登录响应:$result');
if (result['success'] == true) { if (result['success'] == true) {
@@ -66,10 +87,9 @@ class _LoginPageState extends State<LoginPage> {
// 保存token和用户信息到本地存储 // 保存token和用户信息到本地存储
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
await prefs.setString('user_id', result['data']['user_id']); // 保存用户ID await prefs.setString('user_id', result['data']['user_id']);
debugPrint('保存的用户ID: ${result['data']['user_id']}'); debugPrint('保存的用户ID: ${result['data']['user_id']}');
// 延迟后再检查上下文是否仍有效
if (mounted) { if (mounted) {
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
@@ -77,20 +97,23 @@ class _LoginPageState extends State<LoginPage> {
); );
} }
} else { } else {
// 登录失败,显示错误信息
_showDialog('登录失败', result['message'] ?? '未知错误'); _showDialog('登录失败', result['message'] ?? '未知错误');
} }
} else { } else {
_showDialog('错误', '服务器响应异常: ${response.statusCode}'); _showDialog('错误', '服务器响应异常: ${response.statusCode}');
debugPrint('服务器响应异常: ${response.statusCode}'); debugPrint('服务器响应异常: ${response.statusCode}, 响应内容: ${response.data}');
} }
} on DioException catch (e) { } on DioException catch (e) {
// 处理Dio异常 // 处理Dio异常
String errorMessage = '网络请求失败'; String errorMessage = '网络请求失败';
// 新增:详细的异常类型日志
debugPrint('Dio异常类型: ${e.type}, 错误代码: ${e.error}');
if (e.response != null) { if (e.response != null) {
errorMessage = errorMessage =
'请求失败: ${e.response?.statusCode} - ${e.response?.statusMessage}'; '请求失败: ${e.response?.statusCode} - ${e.response?.statusMessage}';
debugPrint('响应数据: ${e.response?.data}'); debugPrint('响应数据: ${e.response?.data}');
debugPrint('响应头: ${e.response?.headers}');
} else if (e.type == DioExceptionType.connectionTimeout) { } else if (e.type == DioExceptionType.connectionTimeout) {
errorMessage = '连接超时,请检查网络'; errorMessage = '连接超时,请检查网络';
} else if (e.type == DioExceptionType.receiveTimeout) { } else if (e.type == DioExceptionType.receiveTimeout) {
@@ -99,18 +122,31 @@ class _LoginPageState extends State<LoginPage> {
errorMessage = '发送数据超时'; errorMessage = '发送数据超时';
} else if (e.type == DioExceptionType.connectionError) { } else if (e.type == DioExceptionType.connectionError) {
errorMessage = '网络连接错误,请检查网络设置'; errorMessage = '网络连接错误,请检查网络设置';
// 新增:连接错误时打印详细信息
debugPrint('连接错误详情: ${e.message}');
} else if (e.type == DioExceptionType.badCertificate) {
errorMessage = '证书验证失败';
} else if (e.type == DioExceptionType.cancel) {
errorMessage = '请求已取消';
} else if (e.type == DioExceptionType.badResponse) {
errorMessage = '服务器返回错误响应';
} }
_showDialog('错误', errorMessage); _showDialog('错误', errorMessage);
debugPrint('详细错误信息: ${e.toString()}'); debugPrint('详细错误信息: ${e.toString()}');
// 新增:打印堆栈跟踪
debugPrint('错误堆栈: ${e.stackTrace}');
} catch (e) { } catch (e) {
_showDialog('错误', '发生未知错误: $e'); _showDialog('错误', '发生未知错误: $e');
debugPrint('详细错误信息: ${e.toString()}'); debugPrint('详细错误信息: ${e.toString()}');
// 新增:打印未知错误的类型
debugPrint('未知错误类型: ${e.runtimeType}');
} finally { } finally {
if (mounted) { if (mounted) {
setState(() { setState(() {
_isLoading = false; _isLoading = false;
}); });
debugPrint('登录流程结束,加载状态已重置');
} }
} }
} }