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>");}

 

 

基本介绍就到这了。  

 

转载于:https://www.cnblogs.com/Sea1ee/p/7240943.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TreeMap是按照key的字典顺序来排序

一、TreeMap TreeMap 默认排序规则&#xff1a;按照key的字典顺序来排序&#xff08;升序&#xff09; 字典排序&#xff08;lexicographical order&#xff09;是一种对于随机变量形成序列的排序方法。即按照字母顺序&#xff0c;或者数字小大顺序&#xff0c;由小到大的形成…

Fireflow 终于发布啦!

Fireflow终于发布啦。虽然离工程应用还有一段距离&#xff0c;但是我还是想放出来让大家看看&#xff0c;听听大家的意见和建议。Fireflow的特点是模型和engine理论严密&#xff0c;因此可以在设计器中模拟流程的执行。另外Fireflow的系统设计也还可以的~_^文档还很欠缺&#x…

我为什么fuck GFW同时FUCK 开心网

我很生气&#xff0c;后果很严重&#xff0c;你要问我为什么&#xff0c;那是因为GFW 屏蔽了一个对我有用的站点[url]www.github.com[/url]&#xff0c; 什么玩意&#xff08;省略1亿遍fuck 他们的话&#xff09;。 开心网删除我的日记&#xff0c; 并没用通知过我&#xff0c…

java 变量存放在哪_Java全局变量存放在哪里?

我们说 常量,静态变量存放在方法区中,方法中的临时变量,存放到Java 虚拟栈中。有人问,那全局变量*(对象)存放在哪里. 其实全局变量 就是参考文章中所说的class的字段,就是指全局变量,它是存放在方法区中的。e)方法区 与堆一样,是被线程共享的区域。在方法区中,存储了每…

jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...

本文是推荐使用过jsb.reflection的开发者进行阅读。关于jsb.reflection的说明请参照&#xff1a;我们在代码编写过程中&#xff0c;通常会需要在js脚本中调用到java代码或者Objective-C的代码。例如&#xff1a;接入sdk&#xff0c;显示webview&#xff0c;使用原生代码&#x…

Excel表格内容导出到页面

引入org.apache.poi.ss.usermodelpublic void addExcelBooks() throws Exception { HttpServletRequest request ServletActionContext.getRequest(); String filepath request.getParameter("filepath"); String fileType filepath.substring(filepath.lastIndex…

综述ASP.NET下的AJAX模式

本文内容: 一、导言 二、XMLHttpWebForm模式 三、XMLHttpHttpHandler模式 四、ASP.NET 2.0/3.5回调模式 五、AJAX框架模式 -------------------------------------------------------------------------------------------------- 一、导言 在这篇文章中&#xff0c;将介绍…

JIRA-6.3.6安装与破解

首先下载JIRA-6.3.6的安装包&#xff1a; wget http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.6.tar.gz 在这里笔者新建JIRA用户来专门运行JIRA useradd jira passwd jira 把包解压到jira的宿主目录(/home/jira)下&#xff1a; tar -zxvf atla…

求二进制数中1的个数

要求&#xff1a;对于一个字节&#xff08;8bit&#xff09;的变量&#xff0c;求其二进制表示中“1”的个数&#xff0c;要求算法的执行效率尽可能地高。 大多数的读者都会有这样的反应&#xff1a;这个题目也太简单了吧&#xff0c;解法似乎也相当地单一&#xff0c;不会有太…

面试题 锁消除是什么

锁消除是在编译器级别的事情。 在即时编译器时&#xff0c;如果发现不可能被共享的对象&#xff0c;则可以消除这些对象的锁操作。 也许你会觉得奇怪&#xff0c;既然有些对象不可能被多线程访问&#xff0c;那为什么要加锁呢&#xff1f;写代码时直接不加锁不就好了。 但是…

面试题-- 什么是偏向锁

所谓的偏向&#xff0c;就是偏心&#xff0c;即锁会偏向于当前已经占有锁的线程 。 大部分情况是没有竞争的&#xff08;某个同步块大多数情况都不会出现多线程同时竞争锁&#xff09;&#xff0c;所以可以通过偏向来提高性能。即在无竞争时&#xff0c;之前获得锁的线程再次获…

Collections.min()和Collections.max()的使用

取集合中的最小值 Collections.min(); 取集合中的最大值 Collections.max(); public class TestCollectionMinMax {public static void main(String[] args) {List<Integer> list new ArrayList<>();list.add(3);list.add(7);list.add(9);list.add(1);list.add(…

python学习之路(九)

这一节主要讲的是装饰器。装饰器是一个非常好用的&#xff0c;用于装饰已有函数的函数功能。 其优点是不用修改调用方式&#xff0c;还不用修改源代码。 他的思想是&#xff1a;函数既变量&#xff1b;高阶函数&#xff1b;嵌套函数。 现在来尝试写装饰器 有两个函数 各自实现自…

java http请求实现_java工程实现http请求接口

java工程实现http请求接口java工程实现http请求接口1.实现代码package com.home;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.sun.net.httpserver.HttpExchange;import com.sun.net.httpserver.HttpHandler;import com.sun.net.https…