一、HttpRequest的作用

  HttpRequest的作用是令到Asp.net能够读取客户端发送HTTP值。比如表单、URL、Cookie传递过来的参数。

  返回字符串的那些值就不说了,那些基本上都是与HTTP请求报文相关的东西。

  现在看看返回NameValueCollection对象的东东,这个对象只是为了存储返回的东西。

  1、Request.Headers;

  这个东西返回的是什么呢?写个实例:

        public ActionResult Index()
{
HttpRequest request = System.Web.HttpContext.Current.Request;
NameValueCollection headersCollect = request.Headers;
string[] headArr = headersCollect.AllKeys;
foreach (string str in headArr)
{
Response.Write(str + ":" + headersCollect.Get(str) + ";<br/>");
}
return View();
}

  看看在浏览器输出:

  再用火狐看看HTTP请求报文的请求头信息:

  明显可以看到,这个request.Headers返回的就是请求头信息的一个NameValueCollection集合。

  2、Request.Form

  这个属性获取的是浏览器提交的表单内容,也是返回NameValueCollection对象,这个对象中包含了所有的表单键值对内容。

  看前台HTML代码:

<form action="/Home/GetForm" method="post">
<p>姓名:<input type="text" name="Name" /></p>  //输入张三
<p>年龄:<input type="text" name="Age" /></p>   //输入12
<p>性别:<input type="radio" name="male" value="man" />男 &nbsp; <input type="radio" name="male" value="woman" />女</p>  //选择 男
<p><input type="submit" value="提交" /></p>
</form>

  后台代码:

        public ActionResult GetForm()
{
HttpRequest request = System.Web.HttpContext.Current.Request;
NameValueCollection FormCollect = request.Form;
foreach (string str in FormCollect)
{
Response.Write(str + ": " + FormCollect.Get(str) + "<br/>");
}
return Content("键值对数目:" + FormCollect.Count);
}

  浏览器输出:

Name: 张三
Age: 12
male: man
键值对数目:3

   3、Request.QueryString

  该属性的作用是将URL中的参数全部保存到NameValueCollection集合中。

        public ActionResult TestCookie()
{
NameValueCollection nvc = new NameValueCollection();
nvc = System.Web.HttpContext.Current.Request.QueryString;
Response.Write(nvc.Count + " "); //输出路径中参数集合的总数
if (nvc.Count > 0)
{
foreach (string str in nvc.AllKeys)
{
Response.Write(str + ": " + nvc.Get(str) + "; "); //遍历url参数集合,输出参数名与值
}
}
return View();
//当路径为http://localhost:22133/Home/testCookie?id=1&name=张三&Age=23
//输出3 id: 1; name: 张三; Age: 28;

  4、Params,Item与QueryString、Forms的区别

  • Get请求用QueryString;
  • Post请求用Forms;
  • Parms与Item可以不区分Get请求还是Post请求;

  Params与Item两个属性唯一不同的是:Item是依次访问这4个集合,找到就返回结果,而Params是在访问时,先将4个集合的数据合并到一个新集合(集合不存在时创建), 然后再查找指定的结果。

.net学习笔记----HttpRequest类的更多相关文章

  1. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  2. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...

  3. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  4. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  5. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  6. .net学习笔记----HttpRequest,WebRequest,HttpWebRequest区别

    WebRequest是一个虚类/基类,HttpWebRequest是WebRequest的具体实现 HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所 ...

  7. Java学习笔记-File类的基本方法

    要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...

  8. CSS3学习笔记——伪类hover

    最近看到一篇文章:“Transition.Transform和Animation使用简介及应用展示”    ,想看看里面 “不同缓动类效果demo”例子的效果,发现了一个问题如下: .Trans_Bo ...

  9. Java7编程 高级进阶学习笔记--嵌套类

    定义: 在一个类中定义的类叫做嵌套类. 作用: 1.允许对相关类进行逻辑分组 2.增强了代码的封装性 3.使代码具有更强的可读性和维护性 使用方式: package com.cmz.baseTest; ...

随机推荐

  1. while循环问题(老师询问问题,学生回答。学生会了可以放学,或者老师讲了10遍,还是没有会的,被迫无奈也要放学。)

    string a=""; ;//声明一个变量,老师重新讲课的次数. && a != "yes") { Console.WriteLine(&qu ...

  2. 使用.NET FrameWork获取CPU,内存使用率以及磁盘空间

    在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现.但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息. ...

  3. struts2基本配置

    struts.xml 放在src目录下 <?xml version="1.0" encoding="UTF-8"?> <struts> ...

  4. Javascript检测用户注册信息

    <html> <head> <title>用户注册</title> <meta http-equiv="content-type&quo ...

  5. WPF 检测输入状态

    [DllImport("user32.dll")] static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); pub ...

  6. linux读写ntfs

    frankly speaking, i hope to get a higher salary. yours frankly= yours sincerely = sincerely yours =y ...

  7. (JS高手不用看了!我只是在碎碎念,因为我也不知道面什么)JavaScript的算术运算

    Math.pow(2,53)    //2的51次幂 Math.round(0.6)    //四舍五入 Math.cell(0.6)      //向上求整 Math.floor(0.6)    / ...

  8. javascript常量

    javascript中没有常量的概念,虽然许多现代的变成环境可能为您提供了用以创建常量的const语句.对于的自己的变量,可以采用相同的命名约定,并且将他们以静态属性的方式添加到构造函数中. //构造 ...

  9. Commando War

    Commando War“Waiting for orders we held in the wood, word from the front never cameBy evening the so ...

  10. Spring常用的接口和类(三)

    一.CustomEditorConfigurer类 CustomEditorConfigurer可以读取实现java.beans.PropertyEditor接口的类,将字符串转为指定的类型.更方便的 ...