打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
asp.net request相关操作

request 属性提供对 httprequest 类的属性和方法的编程访问。由于 asp教程.net 页包含对 system.web 命名空间(含有 httpcontext 类)的默认引用,因此在 .aspx 页上可以引用 httpcontext 的成员,而不需要对 httpcontext 的完全限定类引用。例如,可只使用 request.browser 获取客户端浏览器的功能。但是,如果要从 asp.net教程 代码隐藏模块中使用 httprequest 的成员,则必须在该模块中包括对 system.web 命名空间的引用,同时还要完全限定对当前活动的请求/响应上下文以及要使用的 system.web 中的类的引用。例如,在代码隐藏页中,必须指定全名 httpcontext.current.request.browser。

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

 

asp.net request对象的属性和方法比较多,常用的几个为:useragent 传回客户端浏览器的版本信息,userhostaddress 传回远方客户端机器的主机ip 地址,userhostname 传回远方客户端机器的dns 名称,physicalapplicationpath 传回目前请求网页在server 端的真实路径。

asp.net request对象使用之从浏览器获取数据

利用asp.net request对象方法,可以读取其他页面提交过来的数据。提交的数据有两种形式:一种是通过form表单提交过来,另一种是通过超级链接后面的参数提交过来,两种方式都可以利用request对象读取。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
字符串格式的判断
获取IP地址,由IP地址获得用户地理位置
c# 封装 Request操作类
网站安全通用防护代码(C#版本源码提供)
asp.net常用javascript封装代码
C# Regex.IsMatch()正则表达式验证
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服