ASP.net Reuqest请求常用操作

来源:互联网 发布:linux一键安装脚本 编辑:程序博客网 时间:2024/06/06 22:35
  1. using System;  using System.Text;  using System.Web;  using System.Text.RegularExpressions;    namespace DTcms.Common  {      /// <summary>      /// Request操作类      /// </summary>      public class DTRequest      {          /// <summary>          /// 判断当前页面是否接收到了Post请求          /// </summary>          /// <returns>是否接收到了Post请求</returns>          public static bool IsPost()          {              return HttpContext.Current.Request.HttpMethod.Equals("POST");          }            /// <summary>          /// 判断当前页面是否接收到了Get请求          /// </summary>          /// <returns>是否接收到了Get请求</returns>          public static bool IsGet()          {              return HttpContext.Current.Request.HttpMethod.Equals("GET");          }            /// <summary>          /// 返回指定的服务器变量信息          /// </summary>          /// <param name="strName">服务器变量名</param>          /// <returns>服务器变量信息</returns>          public static string GetServerString(string strName)          {              if (HttpContext.Current.Request.ServerVariables[strName] == null)                  return "";                return HttpContext.Current.Request.ServerVariables[strName].ToString();          }            /// <summary>          /// 返回上一个页面的地址          /// </summary>          /// <returns>上一个页面的地址</returns>          public static string GetUrlReferrer()          {              string retVal = null;                    try              {                  retVal = HttpContext.Current.Request.UrlReferrer.ToString();              }              catch{}                            if (retVal == null)                  return "";                    return retVal;          }                    /// <summary>          /// 得到当前完整主机头          /// </summary>          /// <returns></returns>          public static string GetCurrentFullHost()          {              HttpRequest request = System.Web.HttpContext.Current.Request;              if (!request.Url.IsDefaultPort)                  return string.Format("{0}:{1}", request.Url.Host, request.Url.Port.ToString());                return request.Url.Host;          }            /// <summary>          /// 得到主机头          /// </summary>          public static string GetHost()          {              return HttpContext.Current.Request.Url.Host;          }            /// <summary>          /// 得到主机名          /// </summary>          public static string GetDnsSafeHost()          {              return HttpContext.Current.Request.Url.DnsSafeHost;          }            /// <summary>          /// 获取当前请求的原始 URL(URL 中域信息之后的部分,包括查询字符串(如果存在))          /// </summary>          /// <returns>原始 URL</returns>          public static string GetRawUrl()          {              return HttpContext.Current.Request.RawUrl;          }            /// <summary>          /// 判断当前访问是否来自浏览器软件          /// </summary>          /// <returns>当前访问是否来自浏览器软件</returns>          public static bool IsBrowserGet()          {              string[] BrowserName = {"ie", "opera", "netscape", "mozilla", "konqueror", "firefox"};              string curBrowser = HttpContext.Current.Request.Browser.Type.ToLower();              for (int i = 0; i < BrowserName.Length; i++)              {                  if (curBrowser.IndexOf(BrowserName[i]) >= 0)                      return true;              }              return false;          }            /// <summary>          /// 判断是否来自搜索引擎链接          /// </summary>          /// <returns>是否来自搜索引擎链接</returns>          public static bool IsSearchEnginesGet()          {              if (HttpContext.Current.Request.UrlReferrer == null)                  return false;                string[] SearchEngine = {"google", "yahoo", "msn", "baidu", "sogou", "sohu", "sina", "163", "lycos", "tom", "yisou", "iask", "soso", "gougou", "zhongsou"};              string tmpReferrer = HttpContext.Current.Request.UrlReferrer.ToString().ToLower();              for (int i = 0; i < SearchEngine.Length; i++)              {                  if (tmpReferrer.IndexOf(SearchEngine[i]) >= 0)                      return true;              }              return false;          }            /// <summary>          /// 获得当前完整Url地址          /// </summary>          /// <returns>当前完整Url地址</returns>          public static string GetUrl()          {              return HttpContext.Current.Request.Url.ToString();          }            /// <summary>          /// 获得指定Url参数的值          /// </summary>          /// <param name="strName">Url参数</param>          /// <returns>Url参数的值</returns>          public static string GetQueryString(string strName)          {              return GetQueryString(strName, false);          }            /// <summary>          /// 获得指定Url参数的值          /// </summary>           /// <param name="strName">Url参数</param>          /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>          /// <returns>Url参数的值</returns>          public static string GetQueryString(string strName, bool sqlSafeCheck)          {              if (HttpContext.Current.Request.QueryString[strName] == null)                  return "";                if (sqlSafeCheck && !Utils.IsSafeSqlString(HttpContext.Current.Request.QueryString[strName]))                  return "unsafe string";                return HttpContext.Current.Request.QueryString[strName];          }              public static int GetQueryIntValue(string strName)          {              return GetQueryIntValue(strName, 0);          }            /// <summary>          /// 返回指定URL的参数值(Int型)          /// </summary>          /// <param name="strName">URL参数</param>          /// <param name="defaultvalue">默认值</param>          /// <returns>返回指定URL的参数值</returns>          public static int GetQueryIntValue(string strName, int defaultvalue)          {              if (HttpContext.Current.Request.QueryString[strName] == null || HttpContext.Current.Request.QueryString[strName].ToString() == string.Empty)                  return defaultvalue;              else              {                  Regex obj = new Regex("\\d+");                  Match objmach = obj.Match(HttpContext.Current.Request.QueryString[strName].ToString());                  if (objmach.Success)                      return Convert.ToInt32(objmach.Value);                  else                      return defaultvalue;              }          }              public static string GetQueryStringValue(string strName)          {              return GetQueryStringValue(strName, string.Empty);          }            /// <summary>          /// 返回指定URL的参数值(String型)          /// </summary>          /// <param name="strName">URL参数</param>          /// <param name="defaultvalue">默认值</param>          /// <returns>返回指定URL的参数值</returns>          public static string GetQueryStringValue(string strName, string defaultvalue)          {              if (HttpContext.Current.Request.QueryString[strName] == null || HttpContext.Current.Request.QueryString[strName].ToString() == string.Empty)                  return defaultvalue;              else              {                  Regex obj = new Regex("\\w+");                  Match objmach = obj.Match(HttpContext.Current.Request.QueryString[strName].ToString());                  if (objmach.Success)                      return objmach.Value;                  else                      return defaultvalue;              }          }          /// <summary>          /// 获得当前页面的名称          /// </summary>          /// <returns>当前页面的名称</returns>          public static string GetPageName()          {              string [] urlArr = HttpContext.Current.Request.Url.AbsolutePath.Split('/');              return urlArr[urlArr.Length - 1].ToLower();          }            /// <summary>          /// 返回表单或Url参数的总个数          /// </summary>          /// <returns></returns>          public static int GetParamCount()          {              return HttpContext.Current.Request.Form.Count + HttpContext.Current.Request.QueryString.Count;          }            /// <summary>          /// 获得指定表单参数的值          /// </summary>          /// <param name="strName">表单参数</param>          /// <returns>表单参数的值</returns>          public static string GetFormString(string strName)          {              return GetFormString(strName, false);          }            /// <summary>          /// 获得指定表单参数的值          /// </summary>          /// <param name="strName">表单参数</param>          /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>          /// <returns>表单参数的值</returns>          public static string GetFormString(string strName, bool sqlSafeCheck)          {              if (HttpContext.Current.Request.Form[strName] == null)                  return "";                if (sqlSafeCheck && !Utils.IsSafeSqlString(HttpContext.Current.Request.Form[strName]))                  return "unsafe string";                return HttpContext.Current.Request.Form[strName];          }          /// <summary>          /// 返回指定表单的参数值(Int型)          /// </summary>          /// <param name="strName">表单参数</param>          /// <returns>返回指定表单的参数值(Int型)</returns>          public static int GetFormIntValue(string strName)          {              return GetFormIntValue(strName, 0);          }          /// <summary>          /// 返回指定表单的参数值(Int型)          /// </summary>          /// <param name="strName">表单参数</param>          /// <param name="defaultvalue">默认值</param>          /// <returns>返回指定表单的参数值</returns>          public static int GetFormIntValue(string strName, int defaultvalue)          {              if (HttpContext.Current.Request.Form[strName] == null || HttpContext.Current.Request.Form[strName].ToString() == string.Empty)                  return defaultvalue;              else              {                  Regex obj = new Regex("\\d+");                  Match objmach = obj.Match(HttpContext.Current.Request.Form[strName].ToString());                  if (objmach.Success)                      return Convert.ToInt32(objmach.Value);                  else                      return defaultvalue;              }          }       /// <summary>          /// 返回指定表单的参数值(String型)       /// </summary>       /// <param name="strName">表单参数</param>          /// <returns>返回指定表单的参数值(String型)</returns>          public static string GetFormStringValue(string strName)          {              return GetQueryStringValue(strName, string.Empty);          }          /// <summary>          /// 返回指定表单的参数值(String型)          /// </summary>          /// <param name="strName">表单参数</param>          /// <param name="defaultvalue">默认值</param>          /// <returns>返回指定表单的参数值</returns>          public static string GetFormStringValue(string strName, string defaultvalue)          {              if (HttpContext.Current.Request.Form[strName] == null || HttpContext.Current.Request.Form[strName].ToString() == string.Empty)                  return defaultvalue;              else              {                  Regex obj = new Regex("\\w+");                  Match objmach = obj.Match(HttpContext.Current.Request.Form[strName].ToString());                  if (objmach.Success)                      return objmach.Value;                  else                      return defaultvalue;              }          }            /// <summary>          /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值          /// </summary>          /// <param name="strName">参数</param>          /// <returns>Url或表单参数的值</returns>          public static string GetString(string strName)          {              return GetString(strName, false);          }            /// <summary>          /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值          /// </summary>          /// <param name="strName">参数</param>          /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>          /// <returns>Url或表单参数的值</returns>          public static string GetString(string strName, bool sqlSafeCheck)          {              if ("".Equals(GetQueryString(strName)))                  return GetFormString(strName, sqlSafeCheck);              else                  return GetQueryString(strName, sqlSafeCheck);          }          public static string GetStringValue(string strName)          {              return GetStringValue(strName, string.Empty);          }          /// <summary>          /// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值          /// </summary>          /// <param name="strName">参数</param>          /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>          /// <returns>Url或表单参数的值</returns>          public static string GetStringValue(string strName, string defaultvalue)          {              if ("".Equals(GetQueryStringValue(strName)))                  return GetFormStringValue(strName, defaultvalue);              else                  return GetQueryStringValue(strName, defaultvalue);          }            /// <summary>          /// 获得指定Url参数的int类型值          /// </summary>          /// <param name="strName">Url参数</param>          /// <returns>Url参数的int类型值</returns>          public static int GetQueryInt(string strName)          {              return Utils.StrToInt(HttpContext.Current.Request.QueryString[strName], 0);          }            /// <summary>          /// 获得指定Url参数的int类型值          /// </summary>          /// <param name="strName">Url参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>Url参数的int类型值</returns>          public static int GetQueryInt(string strName, int defValue)          {              return Utils.StrToInt(HttpContext.Current.Request.QueryString[strName], defValue);          }            /// <summary>          /// 获得指定表单参数的int类型值          /// </summary>          /// <param name="strName">表单参数</param>          /// <returns>表单参数的int类型值</returns>          public static int GetFormInt(string strName)          {              return GetFormInt(strName, 0);          }            /// <summary>          /// 获得指定表单参数的int类型值          /// </summary>          /// <param name="strName">表单参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>表单参数的int类型值</returns>          public static int GetFormInt(string strName, int defValue)          {              return Utils.StrToInt(HttpContext.Current.Request.Form[strName], defValue);          }            /// <summary>          /// 获得指定Url或表单参数的int类型值, 先判断Url参数是否为缺省值, 如为True则返回表单参数的值          /// </summary>          /// <param name="strName">Url或表单参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>Url或表单参数的int类型值</returns>          public static int GetInt(string strName, int defValue)          {              if (GetQueryInt(strName, defValue) == defValue)                  return GetFormInt(strName, defValue);              else                  return GetQueryInt(strName, defValue);          }            /// <summary>          /// 获得指定Url参数的decimal类型值          /// </summary>          /// <param name="strName">Url参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>Url参数的decimal类型值</returns>          public static decimal GetQueryDecimal(string strName, decimal defValue)          {              return Utils.StrToDecimal(HttpContext.Current.Request.QueryString[strName], defValue);          }            /// <summary>          /// 获得指定表单参数的decimal类型值          /// </summary>          /// <param name="strName">表单参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>表单参数的decimal类型值</returns>          public static decimal GetFormDecimal(string strName, decimal defValue)          {              return Utils.StrToDecimal(HttpContext.Current.Request.Form[strName], defValue);          }            /// <summary>          /// 获得指定Url参数的float类型值          /// </summary>          /// <param name="strName">Url参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>Url参数的int类型值</returns>          public static float GetQueryFloat(string strName, float defValue)          {              return Utils.StrToFloat(HttpContext.Current.Request.QueryString[strName], defValue);          }            /// <summary>          /// 获得指定表单参数的float类型值          /// </summary>          /// <param name="strName">表单参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>表单参数的float类型值</returns>          public static float GetFormFloat(string strName, float defValue)          {              return Utils.StrToFloat(HttpContext.Current.Request.Form[strName], defValue);          }                    /// <summary>          /// 获得指定Url或表单参数的float类型值, 先判断Url参数是否为缺省值, 如为True则返回表单参数的值          /// </summary>          /// <param name="strName">Url或表单参数</param>          /// <param name="defValue">缺省值</param>          /// <returns>Url或表单参数的int类型值</returns>          public static float GetFloat(string strName, float defValue)          {              if (GetQueryFloat(strName, defValue) == defValue)                  return GetFormFloat(strName, defValue);              else                  return GetQueryFloat(strName, defValue);          }                    }  }  


0 0