diff --git a/lib/base/http/http.dart b/lib/base/http/http.dart index 190aafa..a598f09 100644 --- a/lib/base/http/http.dart +++ b/lib/base/http/http.dart @@ -14,6 +14,7 @@ import '../routes.dart'; class Http { static Dio? _dio; + static bool pushedLoginPage = false; static void initDioConfig( String host, @@ -49,13 +50,7 @@ class Http { return decodeResponse(response, serializationName, compute); } on DioError catch (e) { - if (e.response?.statusCode == 401) { - exitLogin(); - } - return HttpResponse( - success: false, - message: e.response?.statusMessage ?? e.message, - code: 0); + return exceptionHandler(e); } } @@ -75,13 +70,7 @@ class Http { compute, ); } on DioError catch (e) { - if (e.response?.statusCode == 401) { - exitLogin(); - } - return HttpResponse( - success: false, - message: e.response?.statusMessage ?? e.message, - code: 0); + return exceptionHandler(e); } } @@ -101,13 +90,7 @@ class Http { compute, ); } on DioError catch (e) { - if (e.response?.statusCode == 401) { - exitLogin(); - } - return HttpResponse( - success: false, - message: e.response?.statusMessage ?? e.message, - code: 0); + return exceptionHandler(e); } } @@ -126,18 +109,10 @@ class Http { compute, ); } on DioError catch (e) { - if (e.response?.statusCode == 401) { - exitLogin(); - } - return HttpResponse( - success: false, - message: e.response?.statusMessage ?? e.message, - code: 0); + return exceptionHandler(e); } } - static bool pushedLoginPage = false; - static void exitLogin() { if (!pushedLoginPage) { "身份已过期,请重新登录".toast(); @@ -146,6 +121,13 @@ class Http { } } + static HttpResponse exceptionHandler(DioError e) { + if (e.response?.statusCode == 401 && !getIt().useSecretLogined) { + exitLogin(); + } + return HttpResponse(success: false, message: "没有该模块的访问权限", code: 0); + } + static HttpResponse decodeResponse( Response response, String serializationName, @@ -227,8 +209,7 @@ class HttpResponse { late int code; T? bean; - HttpResponse( - {required this.success, this.message, required this.code, this.bean}); + HttpResponse({required this.success, this.message, required this.code, this.bean}); } class DeserializeAction {