feat: 简单处理unknow提示
This commit is contained in:
parent
a17fa079bc
commit
95f8f3afbe
@ -128,7 +128,8 @@ class HttpUtil {
|
|||||||
void updateBaseUrl() {
|
void updateBaseUrl() {
|
||||||
String newBaseUrl = AppConfig.getInstance().baseUrl;
|
String newBaseUrl = AppConfig.getInstance().baseUrl;
|
||||||
if (_dio.options.baseUrl != newBaseUrl) {
|
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;
|
_dio.options.baseUrl = newBaseUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -240,7 +241,9 @@ class HttpUtil {
|
|||||||
return null;
|
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('🔍 请求头: $headers', tag: 'HttpUtil');
|
||||||
KRLogUtil.kr_i('🔍 请求userId: $userId', tag: 'HttpUtil');
|
KRLogUtil.kr_i('🔍 请求userId: $userId', tag: 'HttpUtil');
|
||||||
@ -326,18 +329,22 @@ class HttpUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return BaseResponse<T>.fromJson({
|
if (err.type == DioExceptionType.unknown) {
|
||||||
'code': code,
|
final _pathOnly = (err.requestOptions.path.isNotEmpty)
|
||||||
'msg': msg,
|
? err.requestOptions.path
|
||||||
'data': <String, dynamic>{}
|
: 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) {
|
} catch (e) {
|
||||||
if (isShowLoading) {
|
if (isShowLoading) {
|
||||||
KRCommonUtil.kr_hideLoading();
|
KRCommonUtil.kr_hideLoading();
|
||||||
}
|
}
|
||||||
return BaseResponse<T>.fromJson({
|
return BaseResponse<T>.fromJson({
|
||||||
'code': -90000,
|
'code': -90000,
|
||||||
'msg': e.toString(),
|
'msg': '${e.toString()} (${path})',
|
||||||
'data': <String, dynamic>{}
|
'data': <String, dynamic>{}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -362,7 +369,8 @@ class MyInterceptor extends Interceptor {
|
|||||||
@override
|
@override
|
||||||
void onResponse(Response response, ResponseInterceptorHandler handler) {
|
void onResponse(Response response, ResponseInterceptorHandler handler) {
|
||||||
if (kDebugMode) {
|
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 (response.data != null) {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
@ -375,7 +383,8 @@ class MyInterceptor extends Interceptor {
|
|||||||
@override
|
@override
|
||||||
void onError(DioException err, ErrorInterceptorHandler handler) {
|
void onError(DioException err, ErrorInterceptorHandler handler) {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
print('<<< Error │ ${err.requestOptions.method} │ ${err.requestOptions.uri}');
|
print(
|
||||||
|
'<<< Error │ ${err.requestOptions.method} │ ${err.requestOptions.uri}');
|
||||||
}
|
}
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
print('Error Type: ${err.type}');
|
print('Error Type: ${err.type}');
|
||||||
@ -396,6 +405,8 @@ class MyInterceptor extends Interceptor {
|
|||||||
|
|
||||||
/// 自定义简洁 HTTP 拦截器(无边框符号)
|
/// 自定义简洁 HTTP 拦截器(无边框符号)
|
||||||
class _KRSimpleHttpInterceptor extends Interceptor {
|
class _KRSimpleHttpInterceptor extends Interceptor {
|
||||||
|
static String? _lastPath;
|
||||||
|
static int _lastTsMs = 0;
|
||||||
@override
|
@override
|
||||||
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
|
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
@ -454,7 +465,8 @@ class _KRSimpleHttpInterceptor extends Interceptor {
|
|||||||
@override
|
@override
|
||||||
void onResponse(Response response, ResponseInterceptorHandler handler) {
|
void onResponse(Response response, ResponseInterceptorHandler handler) {
|
||||||
if (kDebugMode) {
|
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 (response.data != null) {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
@ -514,7 +526,8 @@ class _KRSimpleHttpInterceptor extends Interceptor {
|
|||||||
@override
|
@override
|
||||||
void onError(DioException err, ErrorInterceptorHandler handler) {
|
void onError(DioException err, ErrorInterceptorHandler handler) {
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
print('<<< Error │ ${err.requestOptions.method} │ ${err.requestOptions.uri}');
|
print(
|
||||||
|
'<<< Error │ ${err.requestOptions.method} │ ${err.requestOptions.uri}');
|
||||||
}
|
}
|
||||||
if (kDebugMode) {
|
if (kDebugMode) {
|
||||||
print('Error Type: ${err.type}');
|
print('Error Type: ${err.type}');
|
||||||
@ -529,6 +542,19 @@ class _KRSimpleHttpInterceptor extends Interceptor {
|
|||||||
print('Response Data: ${err.response?.data}');
|
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);
|
handler.next(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user