一、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:
male: man
键值对数目:

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 > )
{
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个集合的数据合并到一个新集合(集合不存在时创建), 然后再查找指定的结果。

HttpRequest类的更多相关文章

  1. HttpRequest 类

    关于此类的介绍:查看HttpRequest类 点击查看:HttpRequest中方法的封装 跟这个类对应的HttpResponse类 定义:使 ASP.NET 能够读取客户端在 Web 请求期间发送的 ...

  2. ASP.NET -- WebForm -- HttpRequest类的方法和属性

    ASP.NET -- WebForm --  HttpRequest类的方法和属性 1. HttpRequest类的方法(1) BinaryRead: 执行对当前输入流进行指定字节数的二进制读取. ( ...

  3. C# 之 HttpRequest 类

          Request对象派生自HttpRequest类,使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值,从客户端获取信息,浏览器的种类,用户输入表单的数据,Cooki ...

  4. HttpWebRequest类与HttpRequest类的区别

    HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等. HttpWebR ...

  5. C#,WebRequest类、HttpWebRequest类与HttpRequest类的区别

    C#,WebRequest类和HttpWebRequest类的区别? httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRe ...

  6. (4)ASP.NET HttpRequest 类

    HttpRequest 类的主要作用是读取客户端在 Web 请求期间发送的 HTTP 值. https://msdn.microsoft.com/zh-cn/library/system.web.ht ...

  7. .net学习笔记----HttpRequest类

    一.HttpRequest的作用 HttpRequest的作用是令到Asp.net能够读取客户端发送HTTP值.比如表单.URL.Cookie传递过来的参数. 返回字符串的那些值就不说了,那些基本上都 ...

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

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

  9. java http工具类和HttpUrlConnection上传文件分析

    利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java ...

随机推荐

  1. [转] 从 dll 程序集中动态加载窗体

    无涯 原文 从 dll 程序集中动态加载窗体 [原创] 昨天晚上花了一晚上时间写了一个从程序集中动态加载窗体的程序.将任何包含窗体的代码编译成 dll 文件,再把 dll 文件拷贝到本程序的目录下,本 ...

  2. ylb:创建数据库、表,对表的增查改删语句

    ylbtech-SQL Server:SQL Server-创建数据库.表,对表的增查改删语句 SQL Server 创建数据库.表,对表的增查改删语句. 1,ylb:创建数据库.表,对表的增查改删语 ...

  3. 正则 提取html标签value

    using System.Text.RegularExpressions; //step2: extract expected info //<h1 class="h1user&quo ...

  4. ANSI

    为了扩充ASCII编码,以用于显示本国的语言,不同的国家和地区制定了不同的编码标准,由此产生了GB2312.BIG5.JIS等各自的编码标准.这些使用两个字节来代表一个字符的各种汉字延伸编码方式被称为 ...

  5. Ubuntu/CentOS使用BIND配置DNS服务器

    ------ubuntu server 12---------- 1.安装bind9 sudo apt-get -y install bind9 bind9utils 2.配置  /etc/bind/ ...

  6. SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到 ...

  7. 桶排序-C-结构体排序

    struct TS { int index; ]; }; ] = {{,,,,,"s8"}}; ]; int i; int length = sizeof(a) / sizeof ...

  8. air手势代码

    //下列2句谁放上面谁生效要么触控生效,要么手势生效 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; Multitouch.inputM ...

  9. Cocos2d-x项目移植到WinRT/Win8小记

    Cocos2d-x项目移植到WinRT/Win8小记 作者: K.C. 日期: 11/17/2013 Date: 2013-11-17 23:33 Title: Cocos2d-x项目移植到WinRT ...

  10. HD1005Number Sequence

    Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...