C#.NET Request相关操作

来源:互联网 发布:局域网视频服务器软件 编辑:程序博客网 时间:2024/05/22 15:23

原文见:http://www.cnblogs.com/livexy/archive/2010/07/05/1771635.html

</pre><pre name="code" class="csharp">using System;using System.Web;using System.Text;namespace Pub.Class{    /// <summary>    /// Requests操作类    /// </summary>    public class Request2 {        #region Get/GetInt/GetFloat        /// <summary>        /// 接收传值        /// </summary>        /// <param name="VarName">参数名称</param>        /// <returns>参数对应的值</returns>        static public String Get(String VarName)        {            string varValue = "";            if (HttpContext.Current.Request[VarName]!=null)                 varValue = HttpContext.Current.Request[VarName].ToString();            return varValue;        }        /// <summary>        /// GetInt        /// </summary>        /// <param name="varName"></param>        /// <param name="defValue"></param>        /// <returns></returns>        static public int GetInt(string varName, int defValue) { return Get(varName).ToInt(defValue); }        /// <summary>        /// GetFloat        /// </summary>        /// <param name="varName"></param>        /// <param name="defValue"></param>        /// <returns></returns>        static public float GetFloat(string varName, int defValue) { return Get(varName).ToFloat(defValue); }        #endregion        #region GetQ/GetQInt/GetQFloat        /// <summary>        /// 取URL上的参数        /// </summary>        /// <param name="VarName">参数名</param>        /// <returns>返回参数</returns>        static public String GetQ(String VarName)        {            string varValue = "";            if (HttpContext.Current.Request.QueryString[VarName] != null)                varValue = HttpContext.Current.Request.QueryString[VarName].ToString();            return varValue;        }        /// <summary>        /// GetQInt        /// </summary>        /// <param name="varName"></param>        /// <param name="defValue"></param>        /// <returns></returns>        static public int GetQInt(string varName, int defValue) { return GetQ(varName).ToInt(defValue); }        /// <summary>        /// GetQFloat        /// </summary>        /// <param name="varName"></param>        /// <param name="defValue"></param>        /// <returns></returns>        static public float GetQFloat(string varName, int defValue) { return GetQ(varName).ToFloat(defValue); }        #endregion        #region GetF/GetFInt/GetFFloat        /// <summary>        /// 取POST提交的数据        /// </summary>        /// <param name="VarName">名称</param>        /// <returns>返回值</returns>        static public String GetF(String VarName)        {            string varValue = "";            if (HttpContext.Current.Request.Form[VarName]!=null)                varValue = HttpContext.Current.Request.Form[VarName].ToString();            return varValue;        }        /// <summary>        /// GetFInt        /// </summary>        /// <param name="varName"></param>        /// <param name="defValue"></param>        /// <returns></returns>        static public int GetFInt(string varName, int defValue) { return GetF(varName).ToInt(defValue); }        /// <summary>        /// GetFFloat        /// </summary>        /// <param name="varName"></param>        /// <param name="defValue"></param>        /// <returns></returns>        static public float GetFFloat(string varName, int defValue) { return GetF(varName).ToFloat(defValue); }        #endregion        #region IsPost/IsGet        /// <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");        }        #endregion        #region 服务器变量名        /// <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();        }        #endregion        #region GetRawUrl/IsBrowserGet/IsSearchEnginesGet/GetPageName/GetQParamCount/GetFParamCount/GetParamCount/        /// <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) {                string[] strArray = new string[] { "google", "yahoo", "msn", "baidu", "sogou", "sohu", "sina", "163", "lycos", "tom", "yisou", "iask", "soso", "gougou", "zhongsou" };                string str = HttpContext.Current.Request.UrlReferrer.ToString().ToLower();                for (int i = 0; i < strArray.Length; i++) {                    if (str.IndexOf(strArray[i]) >= 0) return true;                }            }            return false;        }        /// <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>        /// GET ParamCount        /// </summary>        /// <returns></returns>        public static int GetQParamCount() { return (HttpContext.Current.Request.QueryString.Count); }        /// <summary>        /// POST ParamCount        /// </summary>        /// <returns></returns>        public static int GetFParamCount() { return (HttpContext.Current.Request.Form.Count); }        #endregion        #region GetCurrentFullHost/GetHost/GetIP/GetUrl/GetReferrer/SaveRequestFile/GetOS/GetBrowser        /// <summary>        /// 取全IP包括端口        /// </summary>        /// <returns>IP和端口</returns>        public static string GetCurrentFullHost()        {            HttpRequest request = 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>        /// <returns></returns>        public static string GetHost() { return HttpContext.Current.Request.Url.Host; }        /// <summary>        /// 前台URL        /// </summary>        /// <returns></returns>        public static string GetUrl() { return HttpContext.Current.Request.Url.ToString(); }        /// <summary>        /// 来源URL        /// </summary>        /// <returns></returns>        public static string GetReferrer() {            string str = null;            try {                str = GetServerString("HTTP_REFERER").Trim();                if (str.Length==0) str = HttpContext.Current.Request.UrlReferrer.ToString();            } catch { }            if (str == null) return "";            return str;        }        /// <summary>        /// 保存Request文件        /// </summary>        /// <param name="path">保存到文件名</param>        public static void SaveRequestFile(string path)        {            if (HttpContext.Current.Request.Files.Count > 0) HttpContext.Current.Request.Files[0].SaveAs(path);        }        #region GetIP        /// <summary>        /// 取IP        /// </summary>        /// <returns>返回IP</returns>        public static string GetIP() {            string result = String.Empty;            result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];            if (result != null && result != String.Empty) {//可能有代理                 if (result.IndexOf(".") == -1) result = null;                else {                    if (result.IndexOf(",") != -1) {//有“,”,估计多个代理。取第一个不是内网的IP。                                                 result = result.Replace(" ", "").Replace("'", "");                        string[] temparyip = result.Split(",;".ToCharArray());                        for (int i = 0; i < temparyip.Length; i++) {                            if (temparyip[i].IsIP()                                && temparyip[i].Substring(0, 3) != "10."                                && temparyip[i].Substring(0, 7) != "192.168"                                && temparyip[i].Substring(0, 7) != "172.16.")                            {                                return temparyip[i];    //找到不是内网的地址                             }                        }                    }                    else if (result.IsIP()) //代理即是IP格式                         return result;                    else                        result = null;    //代理中的内容 非IP,取IP                 }            }            string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null                && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty)                 ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]                : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];            if (null == result || result == String.Empty)                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];            if (result == null || result == String.Empty)                result = HttpContext.Current.Request.UserHostAddress;            return result;        }        #endregion         #region GetOS        /// <summary>        /// 取操作系统        /// </summary>        /// <returns>返回操作系统</returns>        public static string GetOS() {            HttpBrowserCapabilities bc = new HttpBrowserCapabilities();            bc = System.Web.HttpContext.Current.Request.Browser;            return bc.Platform;        }        #endregion         #region GetBrowser        /// <summary>        /// 取游览器        /// </summary>        /// <returns>返回游览器</returns>        public static string GetBrowser()        {            HttpBrowserCapabilities bc = new HttpBrowserCapabilities();            bc = System.Web.HttpContext.Current.Request.Browser;            return bc.Type;        }        #endregion         #endregion    }}

0 0
原创粉丝点击