public Controller(ListenHttpRequest request) : base(request) { if (ctrlAction == null) { ctrlAction = ViewRequest.ctrlActions; } }
public ControllerBase(ListenHttpRequest request) { Request = request; response = new ListenHttpResponse(); response.StatusCode = 200; response.ContentType = "text/html"; ViewData = new ViewDataBase(); }
public IManageResponseMessage ManageRequest(ListenHttpRequest request) { if (_subClassList.ContainsKey(request.UrlResult.Controller)) { List <MethodInfo> actions = _subClassList[request.UrlResult.Controller].GetMethods().ToList(); object[] construcotParameters = new object[] { request }; object controllerInstance = Activator.CreateInstance(_subClassList[request.UrlResult.Controller], construcotParameters); foreach (MethodInfo item in actions) { if (item.Name.ToLower().Equals(request.UrlResult.Action)) { object[] actionParameters = new object[] { }; return((IManageResponseMessage)item.Invoke(controllerInstance, actionParameters)); } } } throw new WebException(404, "未找到该页面!"); }
/// <summary> /// 处理请求和编写响应 /// </summary> private void TreatmentScheme(HttpListenerContext context) { try { //客户端访问记录 Console.WriteLine("\n客户端发出" + context.Request.HttpMethod + "请求:" + context.Request.Url); //封装HttpListenerRequest ListenHttpRequest request = new ListenHttpRequest(context.Request); //解析URL,获取对应的请求处理类 IManageMessageRequest manageRequest = RequestProcess.ExecuteProcess(request.UrlResult); //根据不同请求处理类,获取不同的响应报文处理类 IManageResponseMessage manageResponse = manageRequest.ManageRequest(request); //处理并发送响应报文 manageResponse.ManageResponse(context.Response); } catch (Exception ex) { WebException.ErrorProcess(ex, context.Response); } }
public IManageResponseMessage ManageRequest(ListenHttpRequest request) { return(new FileResponse(request.UrlResult["filepath"])); }