描述
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. POJ2823 Sliding Window

    Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 53086   Accepted: 15227 Case Time Limi ...

  2. 洛谷P1108 低价购买

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  3. 5个最好的Python Web开发框架

    Python是最受欢迎的和最有效率的开发语言之一.Python能让你更快完成工作,并且更有效地集成系统.Python是动态的面向对象的语言.即便你刚刚开始学习Python,也立即就能获得生产力上的提升 ...

  4. codeforce 626E(二分)

    E. Simple Skewness time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  5. MyEclipse------如何添加jspsmartupload.jar+文件上传到服务器

    下载地址:http://download.csdn.net/detail/heidan2006/182263 如何添加jspsmartupload.jar:右键“Web”工程->properti ...

  6. iOS系统navigationBar背景色,文字颜色处理

    - (void)setRightBarButtonItem { // Create done Button UIBarButtonItem *doneButton = [[UIBarButtonIte ...

  7. 解决:[INS-20802] Oracle Net Configuration Assistant failed

    在linux 中安装Oracle 11G 的时辰呈现 [INS-20802] Oracle Net Configuration Assistant failed 是oracle数据库的鼓掌,须要补丁p ...

  8. java源代码分析----jvm.dll装载过程

    简述众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,以下皆以windows平台为例,linux下 ...

  9. gcc的-D和-U参数:宏的设置与取消 _CCFLAGS=" -w -enable-threads=posix -DLINUX -D_REENTRANT -DWORKONGN -Dlinux -D_GN_DETAIL_SDR_"

    _CCFLAGS=" -w -enable-threads=posix -DLINUX -D_REENTRANT -DWORKONGN -Dlinux -D_GN_DETAIL_SDR_&q ...

  10. Serenity框架官方文档翻译(1-2开始、安装和界面)

    1.开始 最好的和最快速地上手Serenity的方法是使用SERENE,它是一个示例应用程序模板. 您有2个选项来安装SERENE 模板到您的Visual Studio: 从Visual Studio ...