zoukankan      html  css  js  c++  java
  • C#.NET Request相关操作

    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
        }
    }

    本文转自:http://www.cnblogs.com/livexy/archive/2010/07/05/1771635.html

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    基本类型数组与包装类型数组相互转换
    (转载)JVM中的内存模型与垃圾回收
    Python之threading多线程
    Python之基于socket和select模块实现IO多路复用
    Python之利用socketserver实现并发
    Python的网络编程socket模块
    Python设计模式之一(单例模式)
    Python异常处理
    Python面向对象之常用的特殊方法(5)
    Python面向对象之私有方法(4)
  • 原文地址:https://www.cnblogs.com/yeminglong/p/2722166.html
Copyright © 2011-2022 走看看