當用戶端送出請求執行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>
接收GET方法傳來的值:
<%
string NickName = Request.QueryString["nickname"];<%--接收參數值--%>
Response.Write("GET方法傳來的nickname的值為:"+NickName);
%>
</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請求
<TITLE> 發送POST請求</TITLE>
發送POST請求
<form action="GetInfo2.aspx" method="post">
//////////////////////////////////////////////////
GetInfo2.aspx//接收post請求
<title>接收POST請求</title>
接收POST方法傳來的值:
string NickName = Request.Form["nickname"];
Response.Write("POST方法傳來的nickname的值為:"+NickName);
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,如需轉載請自行聯系原作者