import 'dart:async'; import 'dart:convert'; import 'dart:ui'; import 'package:get/get.dart'; import 'package:get/get_connect/http/src/request/request.dart'; import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/login/login/entity/LoginData.dart'; import '../tools/change_language_format.dart'; import '../tools/platform_info_services.dart'; import '../tools/storage.dart'; import '../tools/store_service.dart'; import '../translations/app_dept.dart'; //公共获取UA String getUserAgent() { //赋值变量方便调试 final String ua = 'StarLock/${PlatformInfoService.to?.info.version}/${PlatformInfoService.to?.info.buildNumber}/${GetPlatform.isAndroid ? 'Android' : 'iOS'}'; return ua; } FutureOr requestInterceptor(Request request) async { request.headers['User-Agent'] = getUserAgent(); request.headers['Accept-Language'] = getLanguageCode(); // StoreService.to.getLanguageCode() // request.headers['Content-Type'] = 'application/json'; // request.headers['token'] = StoreService.to.userToken!; String? xToken = ''; final data = await Storage.getString(saveUserLoginData); if (data != null && data.isNotEmpty) { xToken = LoginData.fromJson(jsonDecode(data)).accessToken; } request.headers['Authorization'] = "Bearer ${xToken ?? ''}"; return request; } String getLanguageCode() { final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty ? appDept.deptSupportedLocales .where((Locale element) => element.languageCode.toString() == StoreService.to.getLanguageCode()) .first : Get.locale!; // Get.deviceLocale; String languageCode = ChangeLanguageFormat.convertLocale(locale).toLanguageTag(); AppLog.log( 'languageCode: ${locale.toLanguageTag()} locale: $locale languageCode:$languageCode'); return languageCode; }