c#web项目请求样例-创新互联
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Reflection; using System.Web; using System.ComponentModel; using System.Web.Script.Serialization; namespace HHSoft.PSMIS.Web.WebSite.UserHandler { ///d/// HandlerBase 的摘要说明 /// public class HandlerBase : IHttpHandler { ////// 指定过来的http请求类型 主要指定action方法名称的接收方式 get 或者 post /// protected NameValueCollection httpReuqest = HttpContext.Current.Request.Form; ////// 指定返回头 /// protected string contentType = "text/plain"; ////// 返回值类型 /// public ReturnType returnType = ReturnType.json; ////// 指定接收action方法的参数名称 /// protected string actionName = "action"; //获取当前的http context protected HttpContext Context { get { return HttpContext.Current; } } public void Proce***equest(HttpContext context) { //RequestType = context.Request.ServerVariables["Request_Method"]; string requestContentType =""; string requestReturnType=""; requestContentType = httpReuqest["contentType"]; requestReturnType = httpReuqest["returnType"]; if (!string.IsNullOrEmpty(requestReturnType)) { returnType = (ReturnType)Enum.Parse(typeof(ReturnType), requestReturnType); } if (string.IsNullOrEmpty(requestContentType)) { context.Response.ContentType = this.contentType; } else { context.Response.ContentType = requestContentType; } try { //动态调用方法 当然 你还可以在这里加上是否为同域名请求的判断 this.DynamicMethod(); } catch (AmbiguousMatchException amEx) { if (returnType == ReturnType.json) { this.PrintErrorJson(string.Format("根据该参数{0}找到了多个方法", amEx.Message)); } else { this.Context.Response.Write(string.Format("error,根据该参数{0}找到了多个方法", amEx.Message)); } } catch (ArgumentException argEx) { if (returnType == ReturnType.json) { this.PrintErrorJson("参数异常" + argEx.Message); } else { this.Context.Response.Write("error,参数异常" + argEx.Message); } } catch (ApplicationException apEx) { if (returnType == ReturnType.json) { this.PrintErrorJson("程序异常" + apEx.Message); } else { this.Context.Response.Write("error,程序异常" + apEx.Message); } } } #region 动态调用方法 ////// 动态调用方法 /// private void DynamicMethod() { //根据指定的请求类型获取方法名 string action = this.httpReuqest[this.actionName]; if (!string.IsNullOrEmpty(action)) { //获取方法的实例 非静态 需要Public访问权限 忽略大小写 MethodInfo methodInfo = this.GetType().GetMethod(action, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase); if (methodInfo != null) { //调用方法 methodInfo.Invoke(this, null); } else { throw new ApplicationException(string.Format("没有找到方法{0}", action)); } } else { throw new ArgumentNullException("没有找到调用方法参数或者方法名为空"); } } #endregion #region 打印Json的相关处理 #region 打印Json的相关处理 ////// 打印遇到异常的json /// /// protected void PrintErrorJson(string msg) { this.PrintJson("error", msg); } ////// 打印成功处理的json /// /// protected void PrintSuccessJson(string msg) { this.PrintJson("success", msg); } ////// 打印json /// /// /// protected void PrintJson(string state, string msg) { this.Context.Response.Write("{\"state\":\"" + state + "\",\"msg\":\"" + msg + "\"}"); } protected void PrintString(string obj) { this.Context.Response.Write(obj); } #endregion #endregion public bool IsReusable { get { return false; } } } public enum ReturnType { ////// 返回字符串 /// [Description("返回字符串")] text=0, ////// 返回json类型 /// [Description("返回json类型")] json=1 } }执勤啊
////// HandlerBase 的摘要说明 /// public class HandlerBase : IHttpHandler { ////// 指定过来的http请求类型 主要指定action方法名称的接收方式 get 或者 post /// protected NameValueCollection httpReuqest = HttpContext.Current.Request.Form; ////// 指定返回头 /// protected string contentType = "text/plain"; ////// 返回值类型 /// public ReturnType returnType = ReturnType.json; ////// 指定接收action方法的参数名称 /// protected string actionName = "action"; //获取当前的http context protected HttpContext Context { get { return HttpContext.Current; } } public void Proce***equest(HttpContext context) { //RequestType = context.Request.ServerVariables["Request_Method"]; string requestContentType =""; string requestReturnType=""; requestContentType = httpReuqest["contentType"]; requestReturnType = httpReuqest["returnType"]; if (!string.IsNullOrEmpty(requestReturnType)) { returnType = (ReturnType)Enum.Parse(typeof(ReturnType), requestReturnType); } if (string.IsNullOrEmpty(requestContentType)) { context.Response.ContentType = this.contentType; } else { context.Response.ContentType = requestContentType; } try { //动态调用方法 当然 你还可以在这里加上是否为同域名请求的判断 this.DynamicMethod(); } catch (AmbiguousMatchException amEx) { if (returnType == ReturnType.json) { this.PrintErrorJson(string.Format("根据该参数{0}找到了多个方法", amEx.Message)); } else { this.Context.Response.Write(string.Format("error,根据该参数{0}找到了多个方法", amEx.Message)); } } catch (ArgumentException argEx) { if (returnType == ReturnType.json) { this.PrintErrorJson("参数异常" + argEx.Message); } else { this.Context.Response.Write("error,参数异常" + argEx.Message); } } catch (ApplicationException apEx) { if (returnType == ReturnType.json) { this.PrintErrorJson("程序异常" + apEx.Message); } else { this.Context.Response.Write("error,程序异常" + apEx.Message); } } } #region 动态调用方法 ////// 动态调用方法 /// private void DynamicMethod() { //根据指定的请求类型获取方法名 string action = this.httpReuqest[this.actionName]; if (!string.IsNullOrEmpty(action)) { //获取方法的实例 非静态 需要Public访问权限 忽略大小写 MethodInfo methodInfo = this.GetType().GetMethod(action, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase); if (methodInfo != null) { //调用方法 methodInfo.Invoke(this, null); } else { throw new ApplicationException(string.Format("没有找到方法{0}", action)); } } else { throw new ArgumentNullException("没有找到调用方法参数或者方法名为空"); } } #endregion #region 打印Json的相关处理 #region 打印Json的相关处理 ////// 打印遇到异常的json /// /// protected void PrintErrorJson(string msg) { this.PrintJson("error", msg); } ////// 打印成功处理的json /// /// protected void PrintSuccessJson(string msg) { this.PrintJson("success", msg); } ////// 打印json /// /// /// protected void PrintJson(string state, string msg) { this.Context.Response.Write("{\"state\":\"" + state + "\",\"msg\":\"" + msg + "\"}"); } protected void PrintString(string obj) { this.Context.Response.Write(obj); } #endregion #endregion public bool IsReusable { get { return false; } } } public enum ReturnType { ////// 返回字符串 /// [Description("返回字符串")] text=0, ////// 返回json类型 /// [Description("返回json类型")] json=1 } 之前
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
公司主营业务:网站设计制作、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出福山免费做网站回馈大家。本文名称:c#web项目请求样例-创新互联
本文网址:http://ybzwz.com/article/digsss.html