描述 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 名称
|
请发表评论