import 'package:get/get.dart'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; // 导入 debugPrint import 'package:get_storage/get_storage.dart'; import 'package:problem_check_system/data/providers/local_database.dart'; class InitialBinding implements Bindings { @override void dependencies() { // 全局注册 GetStorage 实例 - 也改为使用 put 确保立即创建 Get.put(GetStorage(), permanent: true); // 全局注册 Dio 实例 - 使用 put 而不是 lazyPut,并设置为永久 Get.put(createDioInstance()); // Get.put(LocalDatabase()); } // 提取创建 Dio 实例的逻辑到单独的方法 Dio createDioInstance() { final dio = Dio( BaseOptions( baseUrl: 'https://xhdev.anxincloud.cn', // 替换为你的服务器地址 connectTimeout: const Duration(seconds: 15), receiveTimeout: const Duration(seconds: 15), ), ); // 添加日志拦截器,仅在调试模式下打印日志 if (kDebugMode) { dio.interceptors.add( LogInterceptor( requestBody: true, responseBody: true, logPrint: (o) => debugPrint(o.toString()), ), ); } // 添加认证拦截器 dio.interceptors.add( InterceptorsWrapper( onRequest: (options, handler) { final token = ""; //todo 获取token if (token != null && token.isNotEmpty) { options.headers['Authorization'] = 'Bearer $token'; } return handler.next(options); }, onError: (DioException e, handler) { if (e.response?.statusCode == 401) { // 如果收到 401 Unauthorized 错误,跳转回登录页 Get.offAllNamed('/login'); } return handler.next(e); }, ), ); return dio; } }