Merge branch 'opt-requestError'

This commit is contained in:
guozhigq
2024-01-29 23:01:30 +08:00
2 changed files with 32 additions and 28 deletions

View File

@ -179,8 +179,14 @@ class Request {
); );
return response; return response;
} on DioException catch (e) { } on DioException catch (e) {
print('get error: $e'); Response errResponse = Response(
return Future.error(await ApiInterceptor.dioError(e)); data: {
'message': await ApiInterceptor.dioError(e)
}, // 将自定义 Map 数据赋值给 Response 的 data 属性
statusCode: 200,
requestOptions: RequestOptions(),
);
return errResponse;
} }
} }
@ -201,8 +207,14 @@ class Request {
// print('post success: ${response.data}'); // print('post success: ${response.data}');
return response; return response;
} on DioException catch (e) { } on DioException catch (e) {
print('post error: $e'); Response errResponse = Response(
return Future.error(await ApiInterceptor.dioError(e)); data: {
'message': await ApiInterceptor.dioError(e)
}, // 将自定义 Map 数据赋值给 Response 的 data 属性
statusCode: 200,
requestOptions: RequestOptions(),
);
return errResponse;
} }
} }

View File

@ -5,7 +5,6 @@ import 'package:dio/dio.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import '../utils/storage.dart'; import '../utils/storage.dart';
// import 'package:get/get.dart' hide Response;
class ApiInterceptor extends Interceptor { class ApiInterceptor extends Interceptor {
@override @override
@ -71,35 +70,28 @@ class ApiInterceptor extends Interceptor {
return '发送请求超时,请检查网络设置'; return '发送请求超时,请检查网络设置';
case DioExceptionType.unknown: case DioExceptionType.unknown:
final String res = await checkConnect(); final String res = await checkConnect();
return '$res \n 网络异常,请稍后重试'; return '$res,网络异常';
// default:
// return 'Dio异常';
} }
} }
static Future<String> checkConnect() async { static Future<String> checkConnect() async {
final ConnectivityResult connectivityResult = final ConnectivityResult connectivityResult =
await Connectivity().checkConnectivity(); await Connectivity().checkConnectivity();
if (connectivityResult == ConnectivityResult.mobile) { switch (connectivityResult) {
return 'connected with mobile network'; case ConnectivityResult.mobile:
} else if (connectivityResult == ConnectivityResult.wifi) { return '正在使用移动流量';
return 'connected with wifi network'; case ConnectivityResult.wifi:
} else if (connectivityResult == ConnectivityResult.ethernet) { return '正在使用wifi';
// I am connected to a ethernet network. case ConnectivityResult.ethernet:
return ''; return '正在使用局域网';
} else if (connectivityResult == ConnectivityResult.vpn) { case ConnectivityResult.vpn:
// I am connected to a vpn network. return '正在使用代理网络';
// Note for iOS and macOS: case ConnectivityResult.other:
// There is no separate network interface type for [vpn]. return '正在使用其他网络';
// It returns [other] on any device (also simulator) case ConnectivityResult.none:
return ''; return '未连接到任何网络';
} else if (connectivityResult == ConnectivityResult.other) { default:
// I am connected to a network which is not in the above mentioned networks. return '';
return '';
} else if (connectivityResult == ConnectivityResult.none) {
return 'not connected to any network';
} else {
return '';
} }
} }
} }