返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NETHttpRequest类介绍
  • 253
分享到

ASP.NETHttpRequest类介绍

2024-04-02 19:04:59 253人浏览 薄情痞子
摘要

HttpRequest 类 关于此类的介绍:查看HttpRequest类 点击查看:HttpRequest中方法的封装 跟这个类对应的HttpResponse类 定义:使 asp.n

HttpRequest 类

关于此类的介绍:查看HttpRequest类

点击查看:HttpRequest中方法的封装

跟这个类对应的HttpResponse类

定义:使 asp.net 能够读取客户端在 WEB 请求期间发送的 HTTP 值。

public sealed class HttpRequest

注:本篇主要介绍可以根据这个类获取什么信息,只会介绍一些用到的方法。

你先要在引用中添加 System.Web.然后引用命名空间。

属性:

public void GetTest()
        {
            int loop1, loop2;
            NameValueCollection coll;  //System.Collections.Specialized;  命名空间下
            // Load ServerVariable collection into NameValueCollection object.
            coll = Request.ServerVariables;
            // Get names of all keys into a string array. 
            String[] arr1 = coll.AllKeys;
            for (loop1 = 0; loop1 < arr1.Length; loop1++)
            {
                Response.Write("Key: " + arr1[loop1] + "<br>");
                String[] arr2 = coll.GetValues(arr1[loop1]);
                for (loop2 = 0; loop2 < arr2.Length; loop2++)
                {
                    Response.Write("Value " + loop2 + ": " + Server.htmlEncode(arr2[loop2]) + "<br>");
                }
            }
        }

public Uri UrlReferrer { get; }

Url类简单介绍

定义: 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。

属性: 截取一部分属性

返回字符串类型

测试

页面1有一个连接到页面2去

<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/TestDemo/WebFORM2.aspx">LinkButton</asp:LinkButton>

页面2的加载事件把上一个URL信息输出

 protected void Page_Load(object sender, EventArgs e)
        {         
            Uri MyUrl = Request.UrlReferrer;
            Response.Write("Referrer URL: " + Server.HtmlEncode(MyUrl.AbsoluteUri) + "<br>");
            Response.Write("Referrer URL Port: " + Server.HtmlEncode(MyUrl.Port.ToString()) + "<br>");
            Response.Write("Referrer URL Protocol: " + Server.HtmlEncode(MyUrl.Scheme) + "<br>");
            Response.Write("Referrer URL: " + Server.HtmlEncode(MyUrl.Query) + "<br>");
        }

传参是一样的(需要使用get传参)

用途:

使用这个很好的可以解决我们登入返回登入页面的问题。登入返回登入前的页面还可以使用Session解决,在登入前把页面信息都保存起来,登入成功后在读取出来。

注:需要在登入页面的加载事件把上一个URL用字符串存起来,登入成功了,跳转这个字符串。(写了登入事件,点击的时候会让页面刷新,上一个页面就是本事页面了)

解决方法:

  string beforeURL = "";  //第一次进入的时候把之前的页面存起来
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.UrlReferrer != null)    //如果这个页面是第一个打开的,这个值为空
                {
                    beforeURL = Request.UrlReferrer.ToString();
                }
            }     
        }
 if (beforeURL!="")
                    {
                        Response.Redirect(beforeURL);
                    }
                    else
                    {
                        Response.Redirect("HomePage/Index.aspx");
                    }

这三个都是返回字符串类型

备注:原始 URL 被指以下域信息的 URL 的一部分。在 URL 字符串 http://www.contoso.com/articles/recent.aspx,原始的 URL 是 /articles/recent.aspx。如果存在,原始的 URL 包括查询字符串。

            Response.Write("Referrer1: " + Server.HtmlEncode(Request.PhysicalApplicationPath) + "<br>");
            Response.Write("Referrer2: " + Server.HtmlEncode(Request.PhysicalPath) + "<br>");
            Response.Write("Referrer URL: " + Server.HtmlEncode(Request.RawUrl) + "<br>");

属性:

    Response.Write("Type: " + Server.HtmlEncode(Request.Browser.Type) + "<br>");

   Response.Write("Url: " + Server.HtmlEncode(Request.Url.ToString()) + "<br>");
Url: http://localhost:4265/TestDemo/WebForm1.aspx?data=1&ke=Good

get传参

string fullname1 = Request.QueryString["fullname"];  //返回的是string类型
string fullname2 = Request["fullname"];

第一行代码会查找键"fullname"仅在查询字符串中;第二行中查找"fullname"中的所有 HTTP 请求集合的键。

HttpRequest.Item 属性 (String)

从QueryString、Form、Cookies或ServerVariables集合获取指定的对象。

Type:System.Collections.Specialized.NameValueCollection

NameValueCollection 类

表示可通过键或索引访问的关联String键和String值的集合。

post传参

Form和QueryString是一样的,都可以使用下面的方法获取都有的健和值

            int loop1 = 0;
            NameValueCollection coll = Request.QueryString;  //注意引用命名空间
            string[] arr1 = coll.AllKeys;
            for (loop1 = 0; loop1 < arr1.Length; loop1++)
            {              
                Response.Write("Form: " + arr1[loop1] + ",Vlue:"+ Request.QueryString[arr1[loop1]] + "<br>");
            }

 protected void Page_Load(object sender, EventArgs e)
        {
            int loop1, loop2;
            NameValueCollection coll;

            // Load Header collection into NameValueCollection object.
            coll = Request.Headers;

            // Put the names of all keys into a string array.
            String[] arr1 = coll.AllKeys;
            for (loop1 = 0; loop1 < arr1.Length; loop1++)
            {
                Response.Write("Key: " + arr1[loop1] + "<br>");
                // Get all values under this key.
                String[] arr2 = coll.GetValues(arr1[loop1]);
                for (loop2 = 0; loop2 < arr2.Length; loop2++)
                {
                    Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
                }
            }
        }

Request.Cookies["XX"];//返回的是HttpCookie类

HttpCookie 类

提供以类型安全的方式来创建和操作单个 HTTP cookie。

命名空间:System.Web

简单的设想Cookies

设置一个Cookies

   Response.Cookies["one"].Value =Server.UrlEncode("我的Cookie值"); //要存储中文需要编码

获取一个Cookies

  Response.Write(Server.UrlDecode(Request.Cookies["one"].Value) +"<br>");//进行解码

还可以在一个Cookies里面设置多个健

    HttpCookie myCookie = new HttpCookie("two");
            myCookie.Values["Name"] = "li";//中文编码
            myCookie.Values["Age"] = "18";
            Response.Cookies.Add(myCookie);
    Response.Write(Request.Cookies["two"].Value+"<br>");
            Response.Write(Request.Cookies["two"].Values + "<br>");
            Response.Write(Request.Cookies["two"].Values["Name"] + "<br>");
            Response.Write(Request.Cookies["two"]["Age"] + "<br>");

调用封装的方法:

            HttpRequestC.WriteCookie("one", "我的Cookied值");
            HttpRequestC.WriteCookie("two", "li", "Name");
            HttpRequestC.WriteCookie("two", "187", "Age");
            Response.Write(HttpRequestC.GetCookie("one")+"<br>");
            Response.Write(HttpRequestC.GetCookie("two","Name") + "<br>");
            Response.Write(HttpRequestC.GetCookie("two", "Age") + "<br>");

Request.Params["xxx"];//通用方法

HttpFileCollection.Item 属性 (String)

HttpPostedFile 类

提供已上载的客户端的各个文件的访问权限。

    <asp:FileUpload ID="fileUpload" runat="server" />
        <asp:FileUpload ID="fileTwo" runat="server" />
    protected void LinkButton1_Click(object sender, EventArgs e)
        {
            int loop1;
            HttpFileCollection Files = Request.Files;
            string[] arr1 = Files.AllKeys;
            for (loop1 = 0; loop1 < arr1.Length; loop1++)
            {
                Response.Write("File: " + Server.HtmlEncode(arr1[loop1]) + "<br />");
                Response.Write("  size = " + Files[loop1].ContentLength + "<br />");
                Response.Write("  content type = " + Files[loop1].ContentType + "<br />");
            }

            HttpPostedFile pf = Request.Files["fileTwo"];
            Response.Write("Name:"+pf.FileName+"<br>");
            Response.Write("流对象:"+pf.InputStream + "<br>");
            Response.Write("字节:"+pf.ContentLength + "<br>");
            Response.Write("类型:"+pf.ContentType + "<br>");

        }

基本介绍就到这了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NETHttpRequest类介绍

本文链接: https://lsjlt.com/news/162280.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NETHttpRequest类介绍
    HttpRequest 类 关于此类的介绍:查看HttpRequest类 点击查看:HttpRequest中方法的封装 跟这个类对应的HttpResponse类 定义:使 ASP.N...
    99+
    2024-04-02
  • python类介绍
    一.类的定义--class关键字1. 类是用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。使用class语句来创建一个新类,class之后为类的名称(User)并以冒号结尾,类的组成包括...
    99+
    2023-01-31
    python
  • 数据类型介绍
    目录 什么是数据类型?(掌握) 为何对数据分类?(掌握) 不同数据类型(掌握) 首先让我们回顾变量是什么:变量用来记录世...
    99+
    2023-01-31
    数据类型
  • istringstream、ostringstream、stringstream类介绍
    istringstream、ostringstream和stringstream类都是C++标准库中的流类,用于处理字符串。它们都是...
    99+
    2023-08-24
    istringstream
  • redis 五种类型介绍
    1.  Redis最适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问...
    99+
    2024-04-02
  • Python线性分类介绍
    通过约束类的协方差相等,将贝叶斯分类器简化为线性分类器。比较生成模型和判别模型在挑战性分类任务中的性能。 在本实验课中:我们将比较线性分类的“生成建模”和&l...
    99+
    2024-04-02
  • VB.NET中ButtonArray类的介绍
    这篇文章主要介绍“VB.NET中ButtonArray类的介绍”,在日常操作中,相信很多人在VB.NET中ButtonArray类的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VB.NET中Button...
    99+
    2023-06-17
  • C#中的HttpWebRequest类介绍
    提供 WebRequest 类的 HTTP 特定的实现。 继承层次结构 System.Object → System.MarshalByRefObject → &...
    99+
    2024-04-02
  • TypeScript基础类型介绍
    目录1.基础类型 2.对象类型 2.1数组 2.2元组 2.3对象 3.类型推断 3.1类型联合中的类型推断 3.2上下文类型 4.类型断言 TS 的静态类型可以人为的分为两类: 基...
    99+
    2024-04-02
  • C++类的大小介绍
    1、C++结构体和类的关系 为什么讲C++类的大小要提到结构体呢,因为可能很多和我一样的学子,接触过C语言的结构体对齐,但不明白类的大小怎么计算,这其中都要用到内存对齐的概念,对于内...
    99+
    2024-04-02
  • java中的几种类介绍
    Date类(1)Date类的概述:表示特定的瞬间表示到毫秒(2)构造方法主要有两种:public Date() public Date(long date) //把一个long类型的毫秒值转换成一个日期对象(3)成员方法:public l...
    99+
    2014-11-24
    java 介绍
  • Android Application类的详细介绍
    Android Application类详解: Android中Application类的详细解释: 我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Ac...
    99+
    2022-06-06
    Android
  • SQL Server数据类型介绍
    简单整理几个常用的SQL server 数据类型的描述,以便查阅。 ...
    99+
    2024-04-02
  • mysql的索引类型介绍
    这期内容当中小编将会给大家带来有关mysql的索引类型介绍,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mysql目前主要有以下几种索引类型:Full-text,HASH...
    99+
    2024-04-02
  • MySQL的数据类型介绍
    由于Mysql独有的特性和实现细节对性能的影响是很明显的,因为做好Mysql数据库的设计很关键。对于数据库设计,我们不得不提表字段的类型选择,由于Mysql支持的数据类型非常多,因此如何选择正确的数据类型对...
    99+
    2024-04-02
  • 介绍java的注解类型
    这篇文章主要介绍“介绍java的注解类型”,在日常操作中,相信很多人在介绍java的注解类型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”介绍java的注解类型”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-06
  • Python 3.7:数据类的介绍
            Python3.7预计在今年夏天发布,让我们一起偷瞄一眼它带来的新功能吧!如果你经常一个人在家用Pycharm撸代码,请确保将你的Pycharm升级到2018.1版本。(等你读完本文再升级也来得及)。Python3.7版...
    99+
    2023-01-31
    数据 Python
  • C#并行库Task类介绍
    Task和ThreadPool的功能类似,可以用来创建一些轻量级的并行任务。对于将一个任务放进线程池 ThreadPool.QueueUserWorkItem(A); 这段代码用Ta...
    99+
    2024-04-02
  • C#并行库Parallel类介绍
    Parallel.Invoke 这个函数的功能和Task有些相似,就是并发执行一系列任务,然后等待所有完成。和Task比起来,省略了Task.WaitAll这一步,自然也缺少了Tas...
    99+
    2024-04-02
  • 详细介绍python类及类的用法
    目录一、类的成员1.1 类的属性1.1.1 静态属性的创建方式1.1.2 实例属性1.2 类的方法二、类成员的修饰符三、类的特殊成员3.1 __doc__3.2  ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作