Files
tuiche/lib/common/util/Dio.dart
2025-06-12 09:03:44 +08:00

242 lines
10 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:dio/dio.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/controller/login/login_controller.dart';
import 'package:vbvs_app/pages/common/selectDialog.dart';
class ApiService {
static Dio dio = Dio();
static Dio request = Dio();
static Dio requestNoInfo = Dio();
static Dio requestNoError = Dio(); //不处理错误的请求,用于设备操作上报
static Dio reservation = Dio();
static void init() {
// 添加全局配置如基础URL、
// 拦截器等
// dio.httpClientAdapter = IOHttpClientAdapter(
// createHttpClient: () {
// final client = HttpClient();
// client.badCertificateCallback =
// (X509Certificate cert, String host, int port) {
// return true; // Verify the certificate.
// };
// return client;
// },
// );
// request.options.baseUrl = CommonVariables.apiUrl;
// request.options.connectTimeout = const Duration(seconds: 15);
// request.options.receiveTimeout = const Duration(seconds: 10);
// request.options.sendTimeout = const Duration(seconds: 10);
// dio.options.headers['Content-Type'] = "application/json";
// dio.options.headers['Token'] = "1";
// 添加其他配置...
// 添加拦截器(可选)
// request.interceptors.add(InterceptorsWrapper(
// onRequest: (options, handler) {
// print("---> ${options.method}, ${options.path}, ${options.data}");
// options.headers['token'] = Get.find<UserInfoController>().model.token;
// print("${options.headers['token']}");
// return handler.next(options);
// },
// onResponse: (response, ResponseInterceptorHandler handler) {
// // 在响应处理前的操作,例如解析响应数据
// // if (response.realUri.toString().contains("/login")) {
// // String? token = response.headers.value('token');
// // if (token != null) {
// // print("token = ${token}");
// // Get.find<GlobalController>().token.value = token;
// // }
// // }
// print("<--- ${response.statusCode}, ${response.data}");
// if (response.data is Map) {
// if (response.data['code'] == HttpStatusCodes.ok) {
// return handler.next(response);
// } else {
// if (response.data['code'] == 10011) {
// Get.offAndToNamed(
// "/loginPage",
// );
// GlobalController globalController = Get.find<GlobalController>();
// globalController.resetParmAll();
// showCustomConfirmDialog(Get.context!, "当前用户已在别处登录,请确认账号密码安全!",
// btnName: "确定", icon: ConfirmDialogIcon.warn)
// .then((d) {
// if (d == "confirm") {
// Get.back();
// }
// });
// } else if (response.data['code'] == 11004) {
// showCustomConfirmAndCancelDialog(Get.context!, "当前用户已登录,是否重新登录",
// confirmName: "确定", cancelName: "取消")
// .then((d) async {
// if (d == "confirm") {
// LoginController loginController = Get.find();
// loginController.model.forceLogin = 1;
// String msg = await loginController.login(Get.context!);
// if (msg == null || msg.isEmpty) {
// Get.offAndToNamed("/mianPageBottomChange");
// }
// } else if (d == "cancel") {
// // Get.offAndToNamed(
// // "/loginPage",
// // );
// Get.back();
// }
// });
// } else if (response.data['code'] == 10009 ||
// response.data['code'] == 11007 ||
// response.data['code'] == 11008) {
// // 有可能对象获取不到所以try catch包住
// try {
// GlobalController globalController =
// Get.find<GlobalController>();
// globalController.resetParmAll();
// UserInfoController userInfoController =
// Get.find<UserInfoController>();
// userInfoController.model.token = null;
// userInfoController.model.user = null;
// userInfoController.model.login = 0;
// userInfoController.model.message = 0;
// LoginController loginController = Get.find();
// loginController.model.account = null;
// loginController.model.password = null;
// loginController.model.phone = null;
// loginController.model.code = null;
// } catch (e) {
// print(e);
// }
// final box = GetStorage();
// box.remove('user');
// box.remove('token');
// showToast(response.data["msg"]);
// } else if (response.data['code'] == 11005) {
// if (response.data['code'] == 11005) {
// var authUserData = response.data['data'];
// AuthBindTelController authBindTelController = Get.find();
// authBindTelController.model.authUserInfo = authUserData;
// Get.toNamed("/auth_bind_tel");
// }
// } else {
// showToast(response.data["msg"]);
// }
// return handler.reject(
// DioException(
// requestOptions: RequestOptions(data: response.data['msg']),
// message: response.data['msg']),
// );
// }
// }
// return handler.next(response);
// },
// onError: (e, handler) {
// // 错误处理,例如打印错误信息
// showToast("网络异常或服务连接异常,请稍候再试", color: color_error);
// print("DioError: $e");
// return handler.reject(e);
// },
// ));
// requestNoInfo.options.baseUrl = CommonVariables.apiUrl;
// requestNoInfo.options.connectTimeout = const Duration(seconds: 15);
// requestNoInfo.options.receiveTimeout = const Duration(seconds: 10);
// requestNoInfo.options.sendTimeout = const Duration(seconds: 10);
// requestNoInfo.interceptors.add(InterceptorsWrapper(
// onRequest: (options, handler) {
// print("---> ${options.method}, ${options.path}, ${options.data}");
// options.headers['token'] = Get.find<UserInfoController>().model.token;
// print("${options.headers['token']}");
// return handler.next(options);
// },
// onResponse: (response, ResponseInterceptorHandler handler) {
// // 在响应处理前的操作,例如解析响应数据
// // if (response.realUri.toString().contains("/login")) {
// // String? token = response.headers.value('token');
// // if (token != null) {
// // print("token = ${token}");
// // Get.find<GlobalController>().token.value = token;
// // }
// // }
// print("<--- ${response.statusCode}, ${response.data}");
// if (response.data is Map) {
// if (response.data['code'] == HttpStatusCodes.ok) {
// return handler.next(response);
// } else {
// // showToast(response.data["msg"]);
// return handler.reject(
// DioException(
// requestOptions: RequestOptions(data: response.data['msg']),
// message: response.data['msg'],
// ),
// );
// }
// }
// return handler.next(response);
// },
// onError: (e, handler) {
// // 错误处理,例如打印错误信息
// showToast("网络异常或服务连接异常,请稍候再试", color: color_error);
// print("DioError: $e");
// return handler.reject(e);
// },
// ));
// requestNoError.options.baseUrl = CommonVariables.apiUrl;
// requestNoError.options.connectTimeout = const Duration(seconds: 5);
// requestNoError.options.receiveTimeout = const Duration(seconds: 3);
// requestNoError.options.sendTimeout = const Duration(seconds: 3);
// requestNoError.interceptors.add(InterceptorsWrapper(
// onRequest: (options, handler) {
// print(
// "requestNoError---> ${options.method}, ${options.path}, ${options.data}");
// options.headers['token'] = Get.find<UserInfoController>().model.token;
// print("${options.headers['token']}");
// return handler.next(options);
// },
// onResponse: (response, ResponseInterceptorHandler handler) {
// print("requestNoError<--- ${response.statusCode}, ${response.data}");
// return handler.next(response);
// },
// onError: (e, handler) {
// // 错误处理,例如打印错误信息
// print("requestNoError-->DioError: $e");
// return handler.reject(e);
// },
// ));
reservationInit();
}
static void reservationInit() {
reservation.options.baseUrl = "https://crm-api.swes.com.cn";
reservation.options.connectTimeout = const Duration(seconds: 15);
reservation.options.receiveTimeout = const Duration(seconds: 10);
reservation.options.sendTimeout = const Duration(seconds: 10);
reservation.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
print("---> ${options.method}, ${options.path}, ${options.data}");
options.headers['token'] =
"bMAQVR1x48t66u8EDYSftAJGo17r0rIB3z15JgyyoGz1rAEZHs1htHOCorYFJ2RT";
return handler.next(options);
},
onResponse: (response, ResponseInterceptorHandler handler) {
print("<--- ${response.statusCode} ${response.data}");
return handler.next(response);
},
onError: (e, handler) {
// 错误处理,例如打印错误信息
showToast("网络异常或服务连接异常,请稍候再试", color: color_error);
print("DioError: $e");
return handler.reject(e);
},
));
}
}