ASP.Net核心对象HttpRequest
描述
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的更多相关文章
- 我心目中的Asp.net核心对象
转:http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html 阅读目录 开始 HttpRuntime HttpServerUtili ...
- ASP.Net核心对象之HttpResponse
简介: HttpResponse是对响应报文进行设置的一个对象.通过context. Response 能够得到HttpResponse对象. context.Response.Charset;//获 ...
- ASP.NET Core 新核心对象WebHost(一)
以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬.(虽然不知道前辈现在在干什么).一晃就6年过去了,那首 郝云 的<回到那一天>怎么唱来着? 时光一晃,你就三十了. ...
- 我心中的ASP.NET Core 新核心对象WebHost(一)
以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬.(虽然不知道前辈现在在干什么).一晃就6年过去了,那首 郝云 的<回到那一天>怎么唱来着? 时光一晃,你就三十了. ...
- .net 三大核心对象
.net 三大核心对象 HttpRequest 现在总算轮到第一个核心对象出场了.MSDN给它作了一个简短的解释:“使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值.”这个解 ...
- Asp.Net WebAPI核心对象解析(三)
对于.NET的分布式应用开发,可以供我们选择的技术和框架比较多,例如webservice,.net remoting,MSMQ,WCF等等技术.对于这些技术很多人都不会陌生,即时没有深入的了解,但是肯 ...
- asp.net core 核心对象解析
首先声明这篇文章的所有内容均来自https://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html ----感谢大内老A(artec ...
- Asp.Net WebApi核心对象解析(下篇)
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...
- ASP.NET Core的路由[2]:路由系统的核心对象——Router
ASP.NET Core应用中的路由机制实现在RouterMiddleware中间件中,它的目的在于通过路由解析为请求找到一个匹配的处理器,同时将请求携带的数据以路由参数的形式解析出来供后续请求处理流 ...
随机推荐
- Serverlet程序
Serverlet是用Java编写的服务器端程序;主要用于交互地浏览和修改数据,生成动态Web内容; 一个serverlet就是一个继承于HttpServlet抽象类的Java类:下面先看一个简单的例 ...
- leach和leach-c协议仿真
http://blog.csdn.net/codingkid/article/details/7215216 1.复制leach_test为leach-c_test,修改里面的文件夹和输出文件名.并且 ...
- PHP开发APP接口----单例模式连接数据库
<?php //单例模式 class Db{ static private $_instance; static private $_connectSource; private $_dbCon ...
- php升级
由于5.3版本不支持[]数组简单声明,故升级版本. apt-get install python-software-properties apt-get install -y ppa-purge ad ...
- 初学JDBC,调用存储过程
在JDBC简单封装的基础上实现 public class UserDao{ public static void testGetUser(String userName) throws Excepti ...
- JSP 使用
JSP教程: http://www.w3cschool.cc/jsp/jsp-tutorial.html jsp语法: 任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依 ...
- Socket 入门- 客户端回射程序
结果输出:------------------------------------------------------客户端:xx@xxxxxx:~/Public/C$ ./postBackCli.o ...
- C++_Eigen函数库用法笔记——Matrix and Vector Arithmetic
Addition and subtraction Scalar multiplication and division Transposition Matrix-matrix and matrix-v ...
- [Angularjs]asp.net mvc+angularjs+web api单页应用
写在前面 最近的工作一直在弄一些h5的单页应用,然后嵌入到app的webview中.之前一直在用angularjs+html+ashx的一套东西.实在是玩腻了.然后就尝试通过asp.net mvc的方 ...
- gvim-ide plugins
omnicppcomplete-0.41.zip after: ftplugin: c.vim,cpp.vim,两个文件的内容相同, 其中都只有一个call语句: call omni#cpp#comp ...