Request对象


当客户端发出请求执行asp.net程序时,CLR会将客户端的请求信息包含在Request对象中。这些请求信息包括请求报头,客户端的基本信息(如浏览器类型,浏览器版本号,用户所用的语言以及编码方式等),请求方法(如post,get),参数名,参数值等。 
Request对象的调用方法:Request.Collection["Variable"]; 
其中Collection包括四种集合:QueryString,Form,Cookies,ServerVariables。
 
1.QueryString集合收集的信息来源于请求url地址中"?"号后面的数据,这些数据称作url附加信息。

例如,www.sina.com/show.asp?id=111 
在此url中,QueryString收集到的信息是"show.asp?"后面的数据"id=111"。此时,取得参数"id"的参数值的语句为:Request.QueryString["id"]; 
QueryString主要用于收集http协议中get请求发送的数据,如果在一个请求事件中被请求的程序url地址出现了"?"号后的数据,则表示此次请求方式为get。get方法是http中的默认请求方法。 
那么,如何发送get请求方法呢? 
(1)<a href="show.aspx?id=111">显示ID为111的文章</a> 
  (2)<form action="show.aspx" method="get"> 
    <input type="text" name="id" value="111"> 
    </form> 
下面演示一个例子,这个例子中有两个程序,分别是form1.htm和GetInfo1.aspx,其中form1.htm发送get请求,GetInfo1.aspx接收get请求。 
/////////////////////////////////////////////////// 
form1.htm 
/////////////////////////////////////////////////// 
<HTML> 
<HEAD> 
<TITLE> 发送GET请求</TITLE> 
</HEAD> 
<BODY> 
<center> 
发送GET请求 
<hr> 
<form action="GetInfo1.aspx" method="get"> 
您的大名:<input type="text" name="nickname"><br> 
<input type="submit" value="发送"> 
<form> 
</center> 
</BODY> 
</HTML> 
////////////////////////////////////////// 
GetInfo1.aspx 
////////////////////////////////////////// 
<% @ Page Language="C#" %> 
<html> 
<head> 
<title>接收GET请求</title> 
</head> 
<body> 
<center> 
接收GET方法传来的值: 
<hr> 
<% 
     string NickName = Request.QueryString["nickname"];<%--接收参数值--%> 
     Response.Write("GET方法传来的nickname的值为:"+NickName); 
%> 
</center> 
</body> 
</html> 
2.get方法是将传递的数据追加至url中。url地址长度是有限制的,因此使用get方法所能传递的数据也是有限的。一般地,get方法能够传递256字节的数据,在多数情况下,使用get方法传递的数据长度是远远不够的,这时便需要使用http的另外一种请求方式post,post方法可传递的数据的最大值为2MB。 
post请求必须由form发出。而且,在使用post请求方法的时候,需要将"method"设置为"post"。
asp.net使用Request.Form方法接收post方法传递的数据:Request.Form["Variable"]; 
接下来也举两个例子,来说明post方法的使用,类似于上面的例子,注意对比。 
////////////////////////////////////////////// 
form2.htm//发送post请求 
////////////////////////////////////////////// 
<HTML> 
<HEAD> 
<TITLE> 发送POST请求</TITLE> 
</HEAD> 
<BODY> 
<center> 
发送POST请求 
<hr> 
<form action="GetInfo2.aspx" method="post"> 
您的大名:<input type="text" name="nickname"><br> 
<input type="submit" value="发送"> 
<form> 
</center> 
</BODY> 
</HTML> 
////////////////////////////////////////////////// 
GetInfo2.aspx//接收post请求 
////////////////////////////////////////////////// 
<% @ Page Language="C#" %> 
<html> 
<head> 
<title>接收POST请求</title> 
</head> 
<body> 
<center> 
接收POST方法传来的值: 
<hr> 
<% 
     string NickName = Request.Form["nickname"]; 
     Response.Write("POST方法传来的nickname的值为:"+NickName); 
%> 
</center> 
</body> 
</html> 
3.cookie的使用(搜集中)。 
4.ServerVariable 

ServerVariable(环境变量)包含了客户机和服务器的系统信息。获得环境变量值的方法是:Request.ServerVariables["Variable"]; 
Variable参数           含义 
HTTP_USER_AGENT         获得用户使用的浏览器类型和版本 
REMOTE_ADDR             获取用户的IP地址 
REQUEST_METHOD         获取请求的方法 
LOCAL_ADDR               获取服务器的IP地址 
SERVER_NAME             获取服务器的主机名 
PATH_INFO                 获取当前执行程序的虚拟路径 
PATH_TRANSLATED         获取当前执行程序的绝对路径 
CONTENT_LENGTH         获取请求程序所发送内容的字符总数 
CONTENT_TYPE             获取请求的信息类型 
GATEWAY_INTERFACE       获取网关接口 
QUERY_STRING             获取url的附加信息 
SCRIPT_NAME               获取当前程序的文件名(包含虚拟路径) 
SERVER_PORT               获取服务器接受请求的端口 
SERVER_PROTOCOL         获取服务器遵从的协议以及版本号 
HTTP_ACCEPT_LANGUAGE   获取用户所使用的语言 
////////////////////////////////////// 
5.Request的Browser对象 
Request.Browser.Browser//检测浏览器的类型 
Request.Browser.Version//检测浏览器的版本 
Request.Browser.ActiveXControls//检测浏览器是否支持ActiveX控件 
Request.Browser.Cookies//检测浏览器是否支持Cookies 
Request.Browser.VBScript//检测浏览器是否支持VBScript 
6.其它Request属性和方法 
FilePath         取得当前请求的文件路径 
HttpMethod     取得当前请求的方法 
Files           关乎文件的上传,后面会讲解 
Params         获得QueryString+Form+ServerVariable+Cookies的集合 
TotalBytes     请求内容的大小 
Url             获得url信息 
UserHostAddress 取得用户的IP地址 
UserHostName   取得用户的主机名 
UserLanguages   取得用户所用语言




本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2011/07/21/2113074.html,如需转载请自行联系原作者

上一篇:使用jquery.cookie操作Cookie实例


下一篇:gui显示白色框架,但不显示内容,gui中耗时操作