/// <summary> /// 读取Url参数 /// </summary> /// <returns></returns> public bool ReadUrlElement() { httpGet.GetString("key", ref key); if (!httpGet.CheckSign()) { return(SetError("签名验证出错!")); } if (!GetUrlElement()) { basePack.ErrorCode = 1001; basePack.ErrorMsg = "请求参数有错"; return(false); } return(true); }
/// <summary> /// 请求处理 /// </summary> /// <param name="typeName"></param> /// <param name="response"></param> /// <param name="userFactory"></param> /// <param name="httpGet"></param> public static void Request(string typeName, HttpGet httpGet, IGameResponse response, Func<int, BaseUser> userFactory) { string tempName = string.Format(typeName, httpGet.ActionId); int actionID = 0; string errorInfo = ""; try { bool isRL = BaseStruct.CheckRunloader(httpGet); if (isRL || httpGet.CheckSign()) { if (httpGet.GetInt("ActionID", ref actionID)) { BaseStruct action = FindRoute(typeName, httpGet, actionID); Process(action, httpGet, response, userFactory); if (action != null) { return; } } } else { errorInfo = "签名验证失败"; TraceLog.WriteError("Action request {3} error:{2},rl:{0},param:{1}", isRL, httpGet.ParamString, errorInfo, tempName); } } catch (Exception ex) { TraceLog.WriteError("Action request {0} error:{1}\r\nparam:{2}", tempName, ex, httpGet.ParamString); } RequestError(response, actionID, errorInfo); }
/// <summary> /// 请求脚本处理 /// </summary> /// <param name="httpGet">请求参数对象</param> /// <param name="response">字节输出处理</param> /// <param name="userFactory">创建user对象工厂,可为Null</param> public static void RequestScript(HttpGet httpGet, IGameResponse response, Func<int, BaseUser> userFactory) { int actionID = httpGet.ActionId; string errorInfo = ""; try { bool isRl = BaseStruct.CheckRunloader(httpGet); if (isRl || httpGet.CheckSign()) { BaseStruct baseStruct = FindScriptRoute(httpGet, actionID); if (baseStruct != null) { Process(baseStruct, httpGet, response, userFactory); return; } } else { errorInfo = "签名验证失败"; TraceLog.WriteError("Action request error:{2},rl:{0},param:{1}", isRl, httpGet.ParamString, errorInfo); } } catch (Exception ex) { TraceLog.WriteError("Action request error:{0}\r\nparam:{1}", ex, httpGet.ParamString); } RequestError(response, actionID, errorInfo); }
/// <summary> /// 请求脚本处理 /// </summary> /// <param name="httpGet">请求参数对象</param> /// <param name="response">字节输出处理</param> /// <param name="userFactory">创建user对象工厂,可为Null</param> public static void RequestScript(HttpGet httpGet, IGameResponse response, Func<int, BaseUser> userFactory) { int actionID = httpGet.GetInt("actionId"); string errorInfo = ""; try { bool isRl = BaseStruct.CheckRunloader(httpGet); if (isRl || httpGet.CheckSign()) { ScriptRoute scriptRoute = new ScriptRoute(actionID); RouteItem routeItem; var pythonManager = PythonScriptManager.Current; if (pythonManager.TryGetAction(actionID, out routeItem)) { if (scriptRoute.TryLoadAction(routeItem.ScriptPath)) { var baseStruct = new ScriptAction((short)actionID, httpGet, scriptRoute, routeItem.IgnoreAuthorize); Process(baseStruct, httpGet, response, userFactory); return; } } } else { errorInfo = "签名验证失败"; TraceLog.WriteError("Action request error:{2},rl:{0},param:{1}", isRl, httpGet.ParamString, errorInfo); } } catch (Exception ex) { TraceLog.WriteError("Action request error:{0}\r\nparam:{1}", ex, httpGet.ParamString); } RequestError(response, actionID, errorInfo); }