242 lines
10 KiB
Dart
242 lines
10 KiB
Dart
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);
|
||
},
|
||
));
|
||
}
|
||
}
|