http_provider_injection.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'package:domain/constants/api_constants.dart';
  2. import 'package:plugin_basic/constants/app_constant.dart';
  3. import 'package:plugin_platform/engine/sp/sp_util.dart';
  4. import 'package:plugin_platform/http/http_provider.dart';
  5. import '../basic_export.dart';
  6. import '../dio_interceptors/interceptor_auth_dio.dart';
  7. import '../dio_interceptors/interceptor_status_code_dio.dart';
  8. class HttpProviderInjection {
  9. // 设置默认的
  10. static void putHttpProviderByCountry() {
  11. //根据选中的国家赋值Api
  12. String baseUrl;
  13. int country = SPUtil.getInt(AppConstant.storageSelectedCountry, defValue: 1) ?? 1;
  14. if (country == 1) {
  15. //新加坡
  16. baseUrl = ApiConstants.sgBaseUrl;
  17. } else if (country == 2) {
  18. //英国
  19. baseUrl = ApiConstants.ukBaseUrl;
  20. } else if (country == 3) {
  21. //马来西亚
  22. baseUrl = ApiConstants.msBaseUrl;
  23. } else if (country == 4) {
  24. //荷兰
  25. baseUrl = ApiConstants.nlBaseUrl;
  26. } else {
  27. //默认越南
  28. baseUrl = ApiConstants.vnBaseUrl;
  29. }
  30. //注入 HttpProvider
  31. Get.put(
  32. HttpProvider(
  33. baseUrl,
  34. interceptors: [StatusCodeDioInterceptors(), AuthDioInterceptors()], //需要加上与App关联的一些拦截处理
  35. ),
  36. permanent: true);
  37. }
  38. // 切换应用的BaseUrl的逻辑
  39. static void switchBaseUrl(String baseUrl) {
  40. //找到单例对象 HttpProvider,切换域名
  41. HttpProvider httpProvider = Get.find();
  42. httpProvider.switchBaseUrl(baseUrl);
  43. }
  44. }