`

request 操作大全

    博客分类:
  • .net
阅读更多
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
    }
}
分享到:
评论

相关推荐

    c#Request关于Url分析

    在Web开发中,对URL进行解析和操作是非常常见的需求之一。在C#中,可以通过`.NET`框架提供的多种方法来处理URL。本文将详细介绍如何使用`HttpRequest`对象来分析和获取URL的相关信息。 #### 1. `Request.Url`与`...

    request的用法总结大全.docx

    `request`通常指的是客户端向服务器发送的一种数据包,包含了客户端希望服务器执行的操作或获取的信息。以下是对`request`用法的详细总结: 1. **作为动词**: - `request`作为动词时,意味着客户端发起一个请求。...

    IDEA Fast xxx Request

    C:\Users\XXX\AppData\Roaming\JetBrains\IntelliJIdea2023.1\plugins\Restful Fast Request\lib 注意! IDEA安装后需要激活码,关闭,会自动推出,不用管也不用重新打开,执行下面操作。 下载该资源后,先备份原版...

    对Django 中request.get和request.post的区别详解

    Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。 POST和GET都...

    PHP - HTTP_Request2实现短信验证码注册登录完整示例:PHP -HTTP_Request2.php和附件说明.rar

    $request-&gt;setBody(array( 'phone' =&gt; '+861234567890', 'code' =&gt; '1234' )); $response = $request-&gt;send(); ``` 3. **验证验证码**:用户输入验证码后,服务器端需要验证输入的验证码是否与之前生成并发送...

    CSRF-Request-Builder-master_request.builder_CSRFtester_kitchenvw

    CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种常见的网络安全漏洞,攻击者通过诱导用户执行非预期的操作来操纵他们已登录的Web应用程序。`CSRF-Request-Builder`是一个专门针对此威胁的测试工具,其核心...

    TP5 Request 请求对象

    public function index(Request $request) { // ... } ``` 这样,我们就可以直接使用`$request`对象来获取请求信息。例如,获取GET参数: ```php $name = $request-&gt;get('name'); ``` 或者获取POST数据: ```...

    AJAXRequest 开发者手册

    // 请求成功后的操作 }; ``` ### 5. 错误处理 AJAXRequest也支持错误处理,通过`onerror`和`ontimeout`事件处理函数: ```javascript request.onerror = function() { console.error('请求出错'); }; request....

    java web 修改request携带的参数信息

    在这个方法中,我们可以对Request和Response对象进行操作。以下是一个简单的Filter示例: ```java public class ParameterModifyFilter implements Filter { @Override public void init(FilterConfig ...

    AjaxRequest(Ajax使用包)

    3. **DOM (Document Object Model)**: 用于操作HTML或XML文档结构,Ajax获取的数据会通过DOM动态地更新页面元素。 4. **CSS**: 用于美化更新后的页面元素。 5. **JSON (JavaScript Object Notation)**: 代替XML作为...

    Jsp的request的用法

    这些数据不会发送回客户端,因此它们更适合于临时存储或在转发或包含操作中传递数据。 ```jsp // 设置属性 String username = request.getParameter("username"); request.setAttribute("username", username); //...

    Request.ServerVariables参数集

    ### Request.ServerVariables参数集详解 在Web开发领域中,服务器端脚本经常需要获取与当前请求相关的各种环境变量,以实现更加智能、安全且高效的功能处理。`Request.ServerVariables`正是一个非常重要的对象,它...

    Laravel开发-request-id

    `Request ID`(请求ID)是一个唯一标识符,它贯穿整个请求处理过程,帮助开发者追踪特定请求从开始到结束的所有交互,包括数据库查询、缓存操作和其他第三方服务的调用。 标题提及的"Laravel开发-request-id"主要是...

    request.getParameter() 和request.getAttribute() 区别

    1. **数据来源不同**:`request.getParameter()`获取的是来自客户端的数据,而`request.setAttribute()`和`request.getAttribute()`是在服务器端操作,用于在请求范围中存储和获取数据。 2. **作用范围不同**:`...

    linux下request_mem_region的详细解释

    Linux 操作系统中,I/O 内存映射列表的管理是通过 request_mem_region 函数来实现的。该函数主要用于申请和管理 I/O 内存区域,以便于设备驱动程序能够正确地访问和操作 I/O 设备。 在 Linux 中,I/O 内存区域被...

    koa源码-request模块

    Koa通过这个属性来区分不同的HTTP操作,进一步调用相应的中间件进行处理。 2. **URL与路径(URL & Path)** Request对象的url属性包含了完整的请求URL,包括协议、主机名、路径、查询参数等。Koa会解析出path属性...

    cross-request-3.3.0.zip

    5. **YApi Google插件**:这个插件可能增强了YApi在Google浏览器中的使用体验,提供了快速访问和操作YApi的功能,或者在浏览器环境中直接进行接口测试。 6. **库的使用**:"cross-request"库可以被引入到前端项目中...

    java中对象的作用,如何获取Request对象

    3. **会话管理**:Request对象允许开发者检查和操作HTTP会话。例如,`getSession()`方法创建或返回一个与当前请求关联的HttpSession对象,用于跟踪用户状态。 4. **获取请求信息**:Request对象还提供获取请求方法...

    Ext.Ajax.request跨域

    同源策略是浏览器为了保障用户安全而设定的一项机制,它禁止了一个源(协议+域名+端口)的文档或脚本获取或操作另一个源的资源。当需要跨域请求时,通常会使用CORS(Cross-Origin Resource Sharing,跨源资源共享)...

    【ASP.NET编程知识】ASP.NET Core读取Request.Body的正确方法.docx

    我们可以在 ConfigureServices 中配置,操作如下: ```csharp services.Configure(options =&gt; { options.AllowSynchronousIO = true; }); ``` 或者,我们可以使用 IHttpBodyControlFeature 的方式设置,具体如下...

Global site tag (gtag.js) - Google Analytics