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

     

  • 相关阅读:
    小程序动态修改页面标题setNavigationBarTitle
    webapi发布在iis之后报错Http 403.14 error
    vue调用子组件方法时,参数传不过去
    Echarts中X轴坐标太密集,分段显示
    使用echarts时,鼠标首次移入屏幕会闪动,全屏会出现滚动条
    js关于数组的操作(合并数组、添加数组、循环等)
    在vue项目中使用echarts
    npm i安装命令中的-g -D -S的区别
    ArcGIS api for JS 实现三维飞行漫游功能
    Vue通过EventBus实现兄弟组件间通信
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1950575.html
Copyright © 2011-2022 走看看