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

HttpRequest类相关推荐

  1. HttpRequest 类

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

  2. HttpRequest 与HttpWebRequest 有什么区别

    System.Web.HttpRequest是封装浏览器对服务器的请求的,主要用在ASP.NET中,其中包括浏览器请求的网址,查询字符串数据或表单数据等等 而System.Net.HttpWebReq ...

  3. 一个文件下载的工具类

    主类: /** * <p> * Copyright: Copyright (c) 2015 * Company: * Description: 这里写这个文件是干什么用的 * </p ...

  4. HttpWebRequest类

    HttpWebRequest类与HttpRequest类的区别. HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebReque ...

  5. quick-cocos2d-x 绑定C++自定义类

    初次接触lua和quick-cocos2d-x,想要用用cocosWidget,然后就碰到C++到lua的绑定问题了. 看了下网上的教程,http://cn.cocos2d-x.org/tutoria ...

  6. DRF-视图类APIView与GenericAPIView

    两个基本类视图APIView,GenericAPIView APIView继承了Django中的view 权限指将来如果有注册用户的时候,是否有权限访问到我们的视图 认证是当发过来一个用户名和密码的时 ...

  7. HttpRequest 和HttpWebRequest的区别(转)

    [1]问题: asp.net C#  中HttpRequest 和HttpWebRequest的区别 HttpRequest 与HttpWebRequest 有什么区别? 网上中文的帖子很多,但是答案 ...

  8. asp.net 中 HttpRequest 中跟URL path 有关的方法和属性 (摘自用怪异的眼光去研究blog)

    对于获取URL path,在HttpRequest 类中已经封装好了很多的相关的方法和属性. 可是在使用中,依然容易被搞迷糊,那个方法是获取相对路径的,那个方法是获取绝对的,每次都会晕上一会儿. 今儿 ...

  9. python drf_067.Python框架Django之DRF视图类

    一 关于视图类的一下概念 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. ...

  10. DAY74-Django框架(五)

    一.虚拟环境 对于一些需要跑在不同版本的模块下的项目,可以跑在虚拟环境中运行 创建虚拟环境的两种方法 pychanrm**创建 1.创建项目时选择使用虚拟环境 ​ 2.在已创建的项目中设置settin ...

最新文章

  1. redis持久化 mysql_Redis 如何保持和MySQL数据一致
  2. 即将开源 | 2亿用户背后的Flutter应用框架Fish Redux
  3. 打一针就可修复受损心脏,“癌症克星”CAR-T跨界疗法登上Science封面
  4. 关于web项目当中的mybatis的xml 文件的配置启动报错的解决。
  5. Java的知识点28——文件编码、IO流的实例
  6. 【转】新浪微博手机客户端刷新都是手动刷新或者下拉刷新,为什么不设计成自动刷新?...
  7. python字典获取关联值_【Python实战12】使用字典关联数据
  8. 新手入门指导:Vue 2.0 的建议学习顺序
  9. 操作系统上机题目(多进程2)
  10. PAT 1003 Emergency 递归记录访问路径
  11. 关于servlet类,继承HttpServlet,但是无法导入HttpServlet包的原因和解决方法
  12. Mozilla 将推出全新的安卓移动浏览器 Fenix
  13. 在python中打开文件显示没有权限PermissionError: [Errno 13] Permission denied:
  14. linux内核 v4l2编译,Linux之V4L2基础编程
  15. 架构图解_图解 Docker 架构
  16. js获取最新的省市区地址
  17. flutter 控制iOS设备屏幕可旋转支持方向
  18. python使用百度OCR接口识别图片文字
  19. 使用Packer在Winodws VMware Workstation Pro上自动部署Windows Server 2016中文版
  20. linux关机重启机器人,Linux Stopped (tty output) 问题

热门文章

  1. 层次凝聚聚类算法(HAC)
  2. Spark开发指南(0.8.1中文版)
  3. 最新基于高德地图的android进阶开发(6)感兴趣点(POI)周边搜索源码浅析
  4. Python文件运行时报TabError: inconsistent use of tabs and spaces in indentation
  5. [Selenium+Java] Selenium Framework: Keyword Driven Hybrid
  6. 四十三 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理...
  7. 解决Boost库链接出错问题
  8. leetcode链表--1、深拷贝链表
  9. QT学习-核心类列表-12、QtDesigner
  10. Unity3d之HashSlash学习笔记(一)--角色属性类的构架