feat: 简单处理unknow提示
This commit is contained in:
parent
a17fa079bc
commit
95f8f3afbe
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user