onError method

  1. @override
void onError(
  1. DioError err,
  2. ErrorInterceptorHandler handler
)
override

网络相关错误

Implementation

@override
void onError(DioError err, ErrorInterceptorHandler handler) {
  if (err.response == null) {
    if (!err.message.startsWith('CodeError:'))
      XLog.e(err.message, '###空Response错误### uri:${err.requestOptions.path}');
    return handler.reject(err);
  }
  int? statusCode = err.response?.statusCode;
  String? errorMsg = err.response?.statusMessage;
  switch (statusCode) {
    case 401: // 用非 200 状态吗,确定未登录
      RespData respData = mapToRespData(err.response?.data);
      respData.onUnLogin?.call();
      break;
    default:
      errorMsg = 'code:$statusCode\n$errorMsg';
      break;
  }
  XLog.e(err.response, '###非200错误###');
  return handler.reject(err);
}