/// <summary> /// 清空所有接口 /// </summary> public void ClearInterface() { foreach (var inter in WebInterfaces) { Main.m_ReferencePool.Despawn(inter.Value); } WebInterfaces.Clear(); }
/// <summary> /// 取消注册接口 /// </summary> /// <param name="interfaceName">接口名称</param> public void UnRegisterInterface(string interfaceName) { if (WebInterfaces.ContainsKey(interfaceName)) { Main.m_ReferencePool.Despawn(WebInterfaces[interfaceName]); WebInterfaces.Remove(interfaceName); } }
/// <summary> /// 通过名称获取接口 /// </summary> /// <param name="interfaceName">接口名称</param> /// <returns>网络接口</returns> public WebInterfaceBase GetInterface(string interfaceName) { if (WebInterfaces.ContainsKey(interfaceName)) { return(WebInterfaces[interfaceName]); } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, "获取接口失败:不存在名为 " + interfaceName + " 的网络接口!"); } }
/// <summary> /// 通过名称获取接口 /// </summary> /// <param name="interfaceName">接口名称</param> /// <returns>网络接口</returns> public WebInterfaceBase GetInterface(string interfaceName) { if (WebInterfaces.ContainsKey(interfaceName)) { return(WebInterfaces[interfaceName]); } else { return(null); } }
/// <summary> /// 取消注册接口 /// </summary> /// <param name="interfaceName">接口名称</param> public void UnRegisterInterface(string interfaceName) { if (WebInterfaces.ContainsKey(interfaceName)) { Main.m_ReferencePool.Despawn(WebInterfaces[interfaceName]); WebInterfaces.Remove(interfaceName); } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, "移除接口失败:不存在名为 " + interfaceName + " 的网络接口!"); } }
/// <summary> /// 注册接口(提交 表单) /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="interfaceUrl">接口url</param> public void RegisterInterface(string interfaceName, string interfaceUrl) { if (!WebInterfaces.ContainsKey(interfaceName)) { WebInterfacePost wi = Main.m_ReferencePool.Spawn <WebInterfacePost>(); wi.Name = interfaceName; wi.Url = interfaceUrl; WebInterfaces.Add(interfaceName, wi); } else { Log.Error(string.Format("注册接口失败:已存在名为 {0} 的网络接口!", interfaceName)); } }
/// <summary> /// 注册接口(提交 表单) /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="interfaceUrl">接口url</param> public void RegisterInterface(string interfaceName, string interfaceUrl) { if (!WebInterfaces.ContainsKey(interfaceName)) { WebInterfacePost wi = Main.m_ReferencePool.Spawn <WebInterfacePost>(); wi.Name = interfaceName; wi.Url = interfaceUrl; WebInterfaces.Add(interfaceName, wi); } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, "添加接口失败:已存在名为 " + interfaceName + " 的网络接口!"); } }
/// <summary> /// 注册接口(获取 string) /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="interfaceUrl">接口url</param> /// <param name="handler">获取 string 之后的处理者</param> /// <param name="offlineHandle">离线模式处理者</param> public void RegisterInterface(string interfaceName, string interfaceUrl, HTFAction <string> handler, HTFAction offlineHandle) { if (!WebInterfaces.ContainsKey(interfaceName)) { WebInterfaceGetString wi = Main.m_ReferencePool.Spawn <WebInterfaceGetString>(); wi.Name = interfaceName; wi.Url = interfaceUrl; wi.OfflineHandler = offlineHandle; wi.Handler = handler; WebInterfaces.Add(interfaceName, wi); } else { Log.Error(string.Format("注册接口失败:已存在名为 {0} 的网络接口!", interfaceName)); } }
/// <summary> /// 注册接口(获取 string) /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="interfaceUrl">接口url</param> /// <param name="handler">获取 string 之后的处理者</param> /// <param name="offlineHandle">离线模式处理者</param> public void RegisterInterface(string interfaceName, string interfaceUrl, HTFAction <string> handler, HTFAction offlineHandle) { if (!WebInterfaces.ContainsKey(interfaceName)) { WebInterfaceGetString wi = Main.m_ReferencePool.Spawn <WebInterfaceGetString>(); wi.Name = interfaceName; wi.Url = interfaceUrl; wi.OfflineHandler = offlineHandle; wi.Handler = handler; WebInterfaces.Add(interfaceName, wi); } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, "添加接口失败:已存在名为 " + interfaceName + " 的网络接口!"); } }
/// <summary> /// 注册接口(获取 File) /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="interfaceUrl">接口url</param> /// <param name="savePath">保存路径</param> /// <param name="loadingHandler">下载过程中回调</param> /// <param name="finishedHandler">下载完成回调</param> /// <param name="offlineHandle">离线模式处理者</param> public void RegisterInterface(string interfaceName, string interfaceUrl, string savePath, HTFAction <float> loadingHandler, HTFAction <bool> finishedHandler, HTFAction offlineHandle) { if (!WebInterfaces.ContainsKey(interfaceName)) { WebInterfaceDownloadFile wi = Main.m_ReferencePool.Spawn <WebInterfaceDownloadFile>(); wi.Name = interfaceName; wi.Url = interfaceUrl; wi.OfflineHandler = offlineHandle; wi.LoadingHandler = loadingHandler; wi.FinishedHandler = finishedHandler; wi.Path = savePath; WebInterfaces.Add(interfaceName, wi); } else { Log.Error(string.Format("注册接口失败:已存在名为 {0} 的网络接口!", interfaceName)); } }
/// <summary> /// 注册接口(获取 File) /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="interfaceUrl">接口url</param> /// <param name="savePath">保存路径</param> /// <param name="loadingHandler">下载过程中回调</param> /// <param name="finishedHandler">下载完成回调</param> /// <param name="offlineHandle">离线模式处理者</param> public void RegisterInterface(string interfaceName, string interfaceUrl, string savePath, HTFAction <float> loadingHandler, HTFAction <bool> finishedHandler, HTFAction offlineHandle) { if (!WebInterfaces.ContainsKey(interfaceName)) { WebInterfaceDownloadFile wi = Main.m_ReferencePool.Spawn <WebInterfaceDownloadFile>(); wi.Name = interfaceName; wi.Url = interfaceUrl; wi.OfflineHandler = offlineHandle; wi.LoadingHandler = loadingHandler; wi.FinishedHandler = finishedHandler; wi.Path = savePath; WebInterfaces.Add(interfaceName, wi); } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, "添加接口失败:已存在名为 " + interfaceName + " 的网络接口!"); } }
/// <summary> /// 发起下载文件请求 /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="parameter">可选参数(要同时传入参数名和参数值,例:name='张三')</param> /// <returns>请求的协程</returns> public Coroutine SendDownloadFile(string interfaceName, params string[] parameter) { if (WebInterfaces.ContainsKey(interfaceName) && WebInterfaces[interfaceName] is WebInterfaceDownloadFile) { if (_module.IsOfflineState || WebInterfaces[interfaceName].IsOffline || !IsConnectedInternet) { WebInterfaces[interfaceName].OfflineHandler?.Invoke(); } else { return(Main.Current.StartCoroutine(SendDownloadFileCoroutine(WebInterfaces[interfaceName] as WebInterfaceDownloadFile, parameter))); } } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, string.Format("发起下载文件请求失败:不存在名为 {0} 的文件请求接口!", interfaceName)); } return(null); }
/// <summary> /// 发起网络请求 /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="form">参数表单</param> /// <returns>请求的协程</returns> public Coroutine SendRequest(string interfaceName, WWWForm form) { if (WebInterfaces.ContainsKey(interfaceName)) { if (_module.IsOfflineState || WebInterfaces[interfaceName].IsOffline || !IsConnectedInternet) { WebInterfaces[interfaceName].OfflineHandler?.Invoke(); } else { return(Main.Current.StartCoroutine(SendRequestCoroutine(WebInterfaces[interfaceName], form))); } } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, string.Format("发起网络请求失败:不存在名为 {0} 的网络接口!", interfaceName)); } return(null); }
/// <summary> /// 发起网络请求 /// </summary> /// <param name="interfaceName">接口名称</param> /// <param name="parameter">可选参数(要同时传入参数名和参数值,例:name='张三')</param> /// <returns>请求的协程</returns> public Coroutine SendRequest(string interfaceName, params string[] parameter) { if (WebInterfaces.ContainsKey(interfaceName)) { if (_module.IsOfflineState || WebInterfaces[interfaceName].IsOffline || !IsConnectedInternet) { WebInterfaces[interfaceName].OfflineHandler?.Invoke(); } else { return(Main.Current.StartCoroutine(SendRequestCoroutine(interfaceName, parameter))); } } else { throw new HTFrameworkException(HTFrameworkModule.WebRequest, "发起网络请求失败:不存在名为 " + interfaceName + " 的网络接口!"); } return(null); }
/// <summary> /// 是否存在指定名称的接口 /// </summary> /// <param name="interfaceName">接口名称</param> /// <returns>是否存在</returns> public bool IsExistInterface(string interfaceName) { return(WebInterfaces.ContainsKey(interfaceName)); }