/// <summary> /// 调用 /// </summary> internal async void Call() { if (!CheckCall()) { return; } if (Data.HostName.Equals("Zero", StringComparison.OrdinalIgnoreCase)) { var manager = new ZeroManager(); manager.Command(Data); return; } // 1 初始化路由信息 if (!FindHost() || Data.RouteHost.Failed) { Data.Status = ZeroOperatorStatus.FormalError; Data.ResultMessage = ApiResult.NoFindJson; return; } // 2 安全检查 if (!TokenCheck()) { Data.Status = ZeroOperatorStatus.DenyAccess; Data.ResultMessage = ApiResult.DenyAccessJson; return; } // 3 缓存快速处理 if (RouteChahe.LoadCache(Data.Uri, Data.Token, out Data.CacheSetting, out Data.CacheKey, ref Data.ResultMessage)) { //找到并返回缓存 Data.Status = ZeroOperatorStatus.Success; return; } // 4 远程调用 if (!Data.RouteHost.ByZero) { Data.ResultMessage = await CallHttp(); } else if (ZeroApplication.ZerCenterIsRun) { Data.ResultMessage = CallZero(); } else { Data.Status = ZeroOperatorStatus.LocalError; Data.ResultMessage = ApiResult.NoReadyJson; return; } // 5 结果检查 SecurityChecker.CheckResult(Data); }