天天看點

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> 

接收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,如需轉載請自行聯系原作者

繼續閱讀