描述
context. Request["username"]; 通过这种方式,能够得到一个HttpRequest对象。
HttpRequest对象描述了,关于请求的相关信息,
我们可以通过这个对象,拿到我们想要的请求数据

写一个方法获取是否含有a元素
方法一:
void Test(HttpContext context)
{
  if (!string.IsNullOrEmpty(context.Request["a"]))
  {
    context.Response.Write("你好牛");
  }
}
方法二:
void tt1()
{
  HttpContext context = HttpContext.Current;
  if (!string.IsNullOrEmpty(context.Request["a"]))
  {
    context.Response.Write("你好牛11");
  }
}

<form action="Test1.ashx" method="post">
<input type="text" name="name" />
<input type="text" name="age" />
<input type="submit" />
</form>
1.post获取方法,获取通过报文体传输的参数post(get获取不到,为NULL):
注意:请求获取的参数都是字符串
string name = context.Request.Form["name"];
string age = context.Request.Form["age"];
2.get获取方法,则通过QueryString获取(post获取不到,为NULL):
string name = context.Request.QueryString["name"];
string age = context.Request.QueryString["age"];
3.不管是post还是get都可获取:
string name = context.Request["name"];
string age = context.Request["age"];

顺序从QueryString、Form、Cookies、 ServerVariables中找,第一个找到的就是(反编译验证),虽然使用Request[]的这种方式获取请求数据,效率会略有下降(几乎可忽略不计),但使用起来真心方便啊。

注意:当用get或post方法获取不到值时,string类型返回的是null,int类型返回的是0

关于请求数据的类型 
请求参数获取的都是String类型数据,因为Http协议就是文本。
所以获取请求来的数据,大多需要数据转换。

通过HttpRequest对象获取一些请求信息
1)浏览器
context.Request.Browser.Browser
2)操作系统信息
context.Request.Browser.Platform
3)浏览器内核版本
context.Request.Browser.Version
 
4)请求报文头
//Request.Headers请求报文头 
for (int i = 0; i < context.Request.Headers.AllKeys.Length; i++)
{
     string key = context.Request.Headers.AllKeys[i];
     string value = context.Request.Headers[key];
     context.Response.Write(key + "=" + value + "\n");
  }
 
5)获取请求方式 (GET   or   POST?)
context.Request.HttpMethod
6)获取请求页面文件路径(相对)
context.Request.Path
7)获取请求参数
context.Request.QueryString
8)被请求的文件的服务器上的物理路径
context.Request.PhysicalPath
9)获取用户代理
context.Request.UserAgent
10)客户端的IP地址
context.Request.UserHostAddress
11)获取客户端上次请求的url的有关信息
context.Request.UrlReferrer
12)浏览器支持什么语言
context.Request.UserLanguages)

context.Request.FilePath;//获取当前请求的虚拟路径
context.Request.Files;//获取采用多部分 MIME 格式的由客户端上载的文件的集合
context.Request.Form; //获取窗体变量集合,method为post时用此方法请求
context.Request.HttpMethod;//获取客户端使用的 HTTP 数据传输方法(如 GET、POST 或 HEAD)
context.Request.MapPath;//将指定的虚拟路径映射到物理路径
context.Request.Path;//获取当前请求的虚拟路径
context.Request.QueryString;//获取 HTTP 查询字符串变量集合,method为get时用此方法请求
context.Request.RawUrl;//获取当前请求的原始 URL
context.Request.RequestType;//获取或设置客户端使用的 HTTP 数据传输方法(GET 或 POST)
context.Request.ServerVariables;//获取 Web 服务器变量的集合
context.Request.Url;//获取有关当前请求的 URL 的信息
context.Request.UrlReferrer;//获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL
context.Request.UserAgent;//获取客户端浏览器的原始用户代理信息
context.Request.UserHostAddress;//获取远程客户端的 IP 主机地址
context.Request.UserHostName;//获取远程客户端的 DNS 名称

ASP.Net核心对象HttpRequest的更多相关文章

  1. 我心目中的Asp.net核心对象

    转:http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html 阅读目录 开始 HttpRuntime HttpServerUtili ...

  2. ASP.Net核心对象之HttpResponse

    简介: HttpResponse是对响应报文进行设置的一个对象.通过context. Response 能够得到HttpResponse对象. context.Response.Charset;//获 ...

  3. ASP.NET Core 新核心对象WebHost(一)

    以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬.(虽然不知道前辈现在在干什么).一晃就6年过去了,那首 郝云 的<回到那一天>怎么唱来着? 时光一晃,你就三十了. ...

  4. 我心中的ASP.NET Core 新核心对象WebHost(一)

    以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬.(虽然不知道前辈现在在干什么).一晃就6年过去了,那首 郝云 的<回到那一天>怎么唱来着? 时光一晃,你就三十了. ...

  5. .net 三大核心对象

    .net 三大核心对象 HttpRequest 现在总算轮到第一个核心对象出场了.MSDN给它作了一个简短的解释:“使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值.”这个解 ...

  6. Asp.Net WebAPI核心对象解析(三)

    对于.NET的分布式应用开发,可以供我们选择的技术和框架比较多,例如webservice,.net remoting,MSMQ,WCF等等技术.对于这些技术很多人都不会陌生,即时没有深入的了解,但是肯 ...

  7. asp.net core 核心对象解析

    首先声明这篇文章的所有内容均来自https://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html ----感谢大内老A(artec ...

  8. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

  9. ASP.NET Core的路由[2]:路由系统的核心对象——Router

    ASP.NET Core应用中的路由机制实现在RouterMiddleware中间件中,它的目的在于通过路由解析为请求找到一个匹配的处理器,同时将请求携带的数据以路由参数的形式解析出来供后续请求处理流 ...

随机推荐

  1. SGU 275 To xor or not to xor

    time limit per test: 0.25 sec. memory limit per test: 65536 KB input: standard output: standard The ...

  2. UVA 1149 Bin Packing

    传送门 A set of n 1-dimensional items have to be packed in identical bins. All bins have exactly the sa ...

  3. 使用SubLineText3

    一 Sublinetext3 1. Sublime Text3是一款跨平台的编辑器, 2. 安装网址: http://www.sublimetext.com/3 二 常用使用方法 1)打开控制台: V ...

  4. 【ASP.NET Web API教程】6.1 媒体格式化器

    http://www.cnblogs.com/r01cn/archive/2013/05/17/3083400.html 6.1 Media Formatters6.1 媒体格式化器 本文引自:htt ...

  5. std::thread

    std::shared_ptr<std::thread> m_spThread; m_spThread.reset(new std::thread(std::bind(&GameS ...

  6. VS2013配置Caffe卷积神经网络工具(64位Windows 7)——准备依赖库

    VS2013配置Caffe卷积神经网络工具(64位Windows 7)--准备依赖库 2014年4月的时候自己在公司就将Caffe移植到Windows系统了,今年自己换了台电脑,想在家里也随便跑跑,本 ...

  7. phpcms 采集教程

    Phpcms网站管理系统目前最新版本为Phpcms v9,作为国内主流CMS系统之一,目前已有数万网站的应用规模.那么其自带的采集模块功能如何呢,来看看吧. 文章采集 Phpcms v9默认内置有文章 ...

  8. python -os、sys

    个人还不是很懂 os操作文件目录.sys针对系统环境的交互.大概是这样 使用os.system函数运行其他程序 os模块中的system()函数可以方便地运行其他程序或者脚本.其函数原型如下所示. o ...

  9. 修改linux最大文件句柄数

    大家知道在linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下 ...

  10. CSS 定义上划线、下划线、删除线代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...