feat: 简单处理unknow提示

This commit is contained in:
speakeloudest 2025-11-28 18:00:21 -08:00
parent a17fa079bc
commit 95f8f3afbe

View File

@ -128,7 +128,8 @@ class HttpUtil {
void updateBaseUrl() {
String newBaseUrl = AppConfig.getInstance().baseUrl;
if (_dio.options.baseUrl != newBaseUrl) {
KRLogUtil.kr_i('🔄 更新baseUrl: ${_dio.options.baseUrl} -> $newBaseUrl', tag: 'HttpUtil');
KRLogUtil.kr_i('🔄 更新baseUrl: ${_dio.options.baseUrl} -> $newBaseUrl',
tag: 'HttpUtil');
_dio.options.baseUrl = newBaseUrl;
}
}
@ -177,7 +178,7 @@ class HttpUtil {
try {
// baseUrl使
updateBaseUrl();
if (isShowLoading) {
KRCommonUtil.kr_showLoading();
}
@ -240,7 +241,9 @@ class HttpUtil {
return null;
}
}
final userId = _kr_parseUserIdFromToken(KRAppRunData().kr_token.toString());
final userId =
_kr_parseUserIdFromToken(KRAppRunData().kr_token.toString());
//
KRLogUtil.kr_i('🔍 请求头: $headers', tag: 'HttpUtil');
KRLogUtil.kr_i('🔍 请求userId: $userId', tag: 'HttpUtil');
@ -326,18 +329,22 @@ class HttpUtil {
}
}
}
return BaseResponse<T>.fromJson({
'code': code,
'msg': msg,
'data': <String, dynamic>{}
});
if (err.type == DioExceptionType.unknown) {
final _pathOnly = (err.requestOptions.path.isNotEmpty)
? err.requestOptions.path
: err.requestOptions.uri.path;
msg = '${msg.isNotEmpty ? msg : 'unknown'} ($_pathOnly)';
KRCommonUtil.kr_showToast('请求失败($_pathOnly', timeout: 3500);
}
return BaseResponse<T>.fromJson(
{'code': code, 'msg': msg, 'data': <String, dynamic>{}});
} catch (e) {
if (isShowLoading) {
KRCommonUtil.kr_hideLoading();
}
return BaseResponse<T>.fromJson({
'code': -90000,
'msg': e.toString(),
'msg': '${e.toString()} (${path})',
'data': <String, dynamic>{}
});
}
@ -362,7 +369,8 @@ class MyInterceptor extends Interceptor {
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
if (kDebugMode) {
print('<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}');
print(
'<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}');
}
if (response.data != null) {
if (kDebugMode) {
@ -375,7 +383,8 @@ class MyInterceptor extends Interceptor {
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
if (kDebugMode) {
print('<<< Error │ ${err.requestOptions.method}${err.requestOptions.uri}');
print(
'<<< Error │ ${err.requestOptions.method}${err.requestOptions.uri}');
}
if (kDebugMode) {
print('Error Type: ${err.type}');
@ -396,6 +405,8 @@ class MyInterceptor extends Interceptor {
/// HTTP
class _KRSimpleHttpInterceptor extends Interceptor {
static String? _lastPath;
static int _lastTsMs = 0;
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
if (kDebugMode) {
@ -454,7 +465,8 @@ class _KRSimpleHttpInterceptor extends Interceptor {
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
if (kDebugMode) {
print('<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}');
print(
'<<< Response │ ${response.requestOptions.method}${response.statusCode} ${response.statusMessage}${response.requestOptions.uri}');
}
if (response.data != null) {
if (kDebugMode) {
@ -514,7 +526,8 @@ class _KRSimpleHttpInterceptor extends Interceptor {
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
if (kDebugMode) {
print('<<< Error │ ${err.requestOptions.method}${err.requestOptions.uri}');
print(
'<<< Error │ ${err.requestOptions.method}${err.requestOptions.uri}');
}
if (kDebugMode) {
print('Error Type: ${err.type}');
@ -529,6 +542,19 @@ class _KRSimpleHttpInterceptor extends Interceptor {
print('Response Data: ${err.response?.data}');
}
}
if (err.type == DioExceptionType.unknown) {
final path = (err.requestOptions.path.isNotEmpty)
? err.requestOptions.path
: err.requestOptions.uri.path;
final now = DateTime.now().millisecondsSinceEpoch;
if (!(_lastPath == path && (now - _lastTsMs) < 2000)) {
_lastPath = path;
_lastTsMs = now;
KRCommonUtil.kr_showToast('请求失败($path', timeout: 3500);
}
KRLogUtil.kr_e('请求失败($path',
tag: 'HttpUtil', error: err, stackTrace: err.stackTrace);
}
handler.next(err);
}
}
}