Request 對(duì)象在 HTTP 請(qǐng)求期間,檢索客戶端瀏覽器傳遞給服務(wù)器的值 。
語(yǔ)法
Request[.collection|property|method](variable)
集合
ClientCertificate
ClientCertificate 集合從 Web 瀏覽器發(fā)布請(qǐng)求中獲取驗(yàn)證字段(由 X.509 標(biāo)準(zhǔn)指定)。
如果 Web 瀏覽器使用 SSL3.0/PCT1 協(xié)議(也就是說(shuō),它使用以 https:// 開(kāi)頭的 URL,而不是 http://)連接服務(wù)器及服務(wù)器請(qǐng)求驗(yàn)證,則瀏覽器將發(fā)送驗(yàn)證字段。
如果沒(méi)有發(fā)送驗(yàn)證,ClientCertificate 集合將返回 EMPTY。
必須先將 Web 服務(wù)器配置為要求客戶端驗(yàn)證,然后才能使用 ClientCertificate 集合。
語(yǔ)法
Request.ClientCertificate( Key[SubField] )
參數(shù)
Key
指定要獲取的驗(yàn)證字段名稱??蛻舳蓑?yàn)證包括下列字段。值 意義
Certificate 按 ASN.1 格式的二進(jìn)制流字符串,其中包括完整的驗(yàn)證內(nèi)容。
Flags 一組標(biāo)志,提供其他客戶端驗(yàn)證信息??梢栽O(shè)置下面的標(biāo)志:
ceCertPresent - 當(dāng)前的客戶端驗(yàn)證。
ceUnrecognizedIssuer - 該鏈上來(lái)自未知的發(fā)布者的最后一個(gè)驗(yàn)證。
注意 要使用以上標(biāo)志,必須在 ASP 頁(yè)中包含客戶端驗(yàn)證包含文件。若您正在使用 VBScript,則應(yīng)包含 cervbs.inc。這些文件安裝在 \Inetpub\ASPSamp\Samples 目錄下。
Issuer 包含子字段值的列表的字符串,此列表包含驗(yàn)證發(fā)布者的信息。若該值在無(wú) SubField 項(xiàng)的情況下指定,則 ClientCertificate 集合返回一個(gè)以逗號(hào)分隔的子字段列表。例如,C=US, O=Verisign 等。
SerialNumber 包含驗(yàn)證的序列號(hào)的字符串,序列號(hào)以連字符 (-) 分隔的 16 進(jìn)制 ASCII 碼表示。例如,04-67-F3-02。
Subject 包含子字段值的列表的字符串,此列表包含有關(guān)驗(yàn)證的主題信息。若該值在無(wú) SubField 項(xiàng)的情況下指定,則 ClientCertificate 集合返回一個(gè)以逗號(hào)分隔的子字段列表。例如,C=US, O=Verisign 等。
ValidFrom 指定驗(yàn)證何時(shí)有效。此日期遵循 VBScript 格式并隨國(guó)家(地區(qū))設(shè)置而變化。例如,在美國(guó)可表示為 9/26/96 11:59:59 PM.
ValidUntil 指定驗(yàn)證何時(shí)到期。
SubField
可選參數(shù),用于按 Subject 或 Issuer 關(guān)鍵字檢索單獨(dú)的字段。此參數(shù)作為一個(gè)后綴添加到 Key 參數(shù)中。例如,IssuerO 或 SubjectCN。下表列出了一些通用的 SubField 值。值 意義
C 指定原國(guó)家(地區(qū))名。
CN 指定公用用戶名。(此子字段僅同 Subject 關(guān)鍵字一起使用。)
GN 指定給定的名稱。
I 指定一組首字母。
L 指定所在地。
O 指定公司或組織名稱。
OU 指定機(jī)構(gòu)的名稱。
S 指定州或省。
T 指定此人或組織的頭銜。
與在上述列表中所列的值不同,SubField 的值可被 ASN.1 標(biāo)識(shí)所識(shí)別。ASN.1 標(biāo)識(shí)的格式是一串通過(guò)句點(diǎn) (.) 分隔的一系列數(shù)。例如: 3.56.7886.34。
注釋
可以通過(guò)關(guān)鍵字用循環(huán)來(lái)遍歷 ClientCertificate 集合。下面的例子對(duì)此進(jìn)行演示。
<%
For Each key in Request.ClientCertificate
Response.Write( key & ": " & Request.ClientCertificate(key) & "<BR>")
Next
%>
示例
下面的示例使用 Subject 關(guān)鍵字測(cè)試客戶端驗(yàn)證是否存在。
<%
If Len(Request.ClientCertificate("Subject")) = 0
Response.Write("No client certificate was presented")
End if
%>
下面的示例獲取發(fā)布客戶端驗(yàn)證的公司的公用名。
<%= Request.ClientCertificate("IssuerCN") %>
下面的示例檢查客戶端驗(yàn)證主題的組織名。
<%
If (Request.ClientCertificate("Subject")="Msft")
Response.Write("Good Choice!")
End if
%>
下面的示例顯示客戶端驗(yàn)證何時(shí)到期。
This certification will expire on
<%= Request.ClientCertificate("ValidUntil") %>
下面的示例使用 Flags 關(guān)鍵字測(cè)試客戶端驗(yàn)證的發(fā)布者是不是已知的。第一行的 include 命令使腳本可使用已命名標(biāo)志 ceUnrecognizedIssuer。
<!--#include file="cervbs.inc" -->
<%
If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then
Response.Write "Unrecognized issuer"
End If
%>
Cookies
Cookies 集合允許用戶檢索在 HTTP 請(qǐng)求中發(fā)送的 cookie 的值。
語(yǔ)法
Request.Cookies(cookie)[(key)|.attribute]
參數(shù)
cookie
指定要檢索其值的 cookie。
key
可選參數(shù),用于從 cookie 字典中檢索子關(guān)鍵字的值。
attribe
指定 cookie 自身的有關(guān)信息。其屬性參數(shù)如下:名稱 說(shuō)明
HasKeys 只讀。指定 cookie 是否包含關(guān)鍵字。
注釋
可以通過(guò)包含一個(gè) key 值來(lái)訪問(wèn) cookie 字典的子關(guān)鍵字。如果訪問(wèn) cookie 字典時(shí)未指定 key,則所有關(guān)鍵字都會(huì)作為單個(gè)查詢字符串返回。例如,如果 MyCookie 有兩個(gè)關(guān)鍵字, First 和 Second ,而在調(diào)用 Request.Cookies時(shí)并未指定其中任何一個(gè)關(guān)鍵字,那么將返回下列字符串。
First=firstkeyvalue&Second=secondkeyvalue
如果客戶端瀏覽器發(fā)送了兩個(gè)同名的 cookie,那么 Request.Cookie 將返回其中路徑結(jié)構(gòu)較深的一個(gè)。例如,如果有兩個(gè)同名的的 cookie,但其中一個(gè)的路徑屬性為 /www/ 而另一個(gè)為 /www/home/,客戶端瀏覽器同時(shí)將兩個(gè) cookie 都發(fā)送到 /www/home/ 目錄中,那么 Request.Cookie 將只返回第二個(gè) cookie。
要確定某個(gè) cookie 是不是 cookie 字典(cookie 有否有關(guān)鍵字),可使用下列腳本。
<%= Request.Cookies("myCookie").HasKeys %>
如果 myCookie 是一個(gè) cookie 字典,則前面的賦值為 TRUE。否則,為 FALSE。
可以通過(guò)循環(huán)遍歷 Cookies 集合中的所有 cookie 或 cookie 中的所有關(guān)鍵字。但是,通過(guò)關(guān)鍵字在沒(méi)有關(guān)鍵字的 cookie 上遍歷將不產(chǎn)生任何輸出。使用 HasKeys 語(yǔ)法先檢查一下 cookie 是否有關(guān)鍵字,可以避免這種情況。下面的例子對(duì)此進(jìn)行演示。
<%
‘Print out the entire cookie collection.
For Each cookie in Request.Cookies
If Not cookie.HasKeys Then
‘Print out the cookie string
%>
<%= cookie %> = <%= Request.Cookies(cookie)%>
<%
Else
‘Print out the cookie collection
For Each key in Request.Cookies(cookie)
%>
<%= cookie %> (<%= key %>) = <%= Request.Cookies(cookie)(key)%>
<%
Next
End If
Next
%>
示例
下面的例子打印 Web 頁(yè)中的 myCookie 的值。
這是名為 myCookie 的 cookie 值:
<%= Request.Cookies("myCookie") %>
Form
Form 集合通過(guò)使用 POST 方法的表格檢索郵送到 HTTP 請(qǐng)求正文中的表格元素的值。
語(yǔ)法
Request.Form(element)[(index)|.Count]
參數(shù)
element
指定集合要檢索的表格元素的名稱。
index
可選參數(shù),使用該參數(shù)可以訪問(wèn)某參數(shù)中多個(gè)值中的一個(gè)。它可以是 1 到 Request.Form(parameter).Count 之間的任意整數(shù)。
注釋
Form 集合按請(qǐng)求正文中參數(shù)的名稱來(lái)索引。Request.Form(element) 的值是請(qǐng)求正文中所有 element 值的數(shù)組。通過(guò)調(diào)用 Request.Form(element).Count 來(lái)確定參數(shù)中值的個(gè)數(shù)。如果參數(shù)未關(guān)聯(lián)多個(gè)值,則計(jì)數(shù)為 1。如果找不到參數(shù),計(jì)數(shù)為 0 。
要引用有多個(gè)值的表格元素中的單個(gè)值,必須指定 index 值。index 參數(shù)可以是從 1 到 Request.Form(element).Count 中的任意數(shù)字。如果引用多個(gè)表格參數(shù)中的一個(gè),而未指定 index 值,返回的數(shù)據(jù)將是以逗號(hào)分隔的字符串。
在使用 Request.Form 參數(shù)時(shí),Web 服務(wù)器將分析 HTTP 請(qǐng)求正文并返回指定的數(shù)據(jù)。如果應(yīng)用程序需要未分析的表格數(shù)據(jù),可以通過(guò)調(diào)用不帶參數(shù)的 Request.Form 訪問(wèn)該數(shù)據(jù)。
使用重述符可以遍歷表格請(qǐng)求中的所有數(shù)據(jù)值。例如,用戶通過(guò)指定兩個(gè)值填寫表格,Chocolate 和 Butterscotch。對(duì)于 FavoriteFlavor 參數(shù),您可以使用下面的腳本檢索這些值。
<%
For Each item In Request.Form("FavoriteFlavor")
Response.Write item & "<BR>"
Next
%>
上述腳本顯示如下。
Chocolate
Butterscotch
使用 For...Next 循環(huán)可以生成同樣的輸出,如下列腳本所示。
<%
For i = 1 To Request.Form("FavoriteFlavor").Count
Response.Write Request.Form("FavoriteFlavor")(i) & "<BR>"
Next
%>
使用該復(fù)述符可以顯示參數(shù)名。如下列腳本所示。
<% For Each x In Request.Form %>
Request.Form( <%= x %> ) = <%= Request.Form(x) %> <BR>
<% Next %>
該腳本在瀏覽器上顯示下列信息。
FavoriteFlavor = Chocolate
FavoriteFlavor = Butterscotch
示例
請(qǐng)考慮下列表格。
<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>Your first name: <INPUT NAME = "firstname" SIZE = 48>
<P>What is your favorite ice cream flavor: <SELECT NAME = "flavor">
<OPTION>Vanilla
<OPTION>Strawberry
<OPTION>Chocolate
<OPTION>Rocky Road</SELECT>
<p><INPUT TYPE = SUBMIT>
</FORM>
下列的請(qǐng)求正文可以從該腳本中發(fā)送。
firstname=James&flavor=Rocky+Road
可以使用下面的腳本。
Welcome, <%= Request.Form("firstname") %>.
Your favorite flavor is <%= Request.Form("flavor") %>.
下面的輸出就是結(jié)果。
Welcome, James. Your favorite flavor is Rocky Road.
如果使用下面的腳本
The unparsed form data is: <%= Request.Form %>
結(jié)果為
The unparsed form data is: firstname=James&flavor=Rocky+Road
QueryString
QueryString 集合檢索 HTTP 查詢字符串中變量的值。HTTP 查詢字符串由問(wèn)號(hào) (?) 后的值指定。幾個(gè)不同的進(jìn)程都可以生成查詢字符串。如,anchor 標(biāo)記
<A HREF= "example?string=this is a sample">string sample</A>
生成值為 "this is a sample" 的變量名字符串。通過(guò)發(fā)送表格或由用戶在其瀏覽器的地址框中鍵入查詢也可以生成查詢字符串。
語(yǔ)法
Request.QueryString(variable)[(index)|.Count]
參數(shù)
variable
在 HTTP 查詢字符串中指定要檢索的變量名。
index
這是一個(gè)可選參數(shù),可以用來(lái)檢索 variable 的多個(gè)值中的某一個(gè)值。這可以是從 1 到 Request.QueryString(variable).Count 之間的任何整數(shù)。
注釋
QueryString 集合是在 ServerVariables 集合中 QUERY_STRING 變量的分析版本 。它可以讓您以名稱檢索 QUERY_STRING 變量。Request.QueryString (參數(shù)) 的值是出現(xiàn)在 QUERY_STRING 中所有參數(shù) 的值的數(shù)組。通過(guò)調(diào)用 Request.QueryString(parameter).Count 可以確定參數(shù)有多少個(gè)值。如果變量未關(guān)聯(lián)多個(gè)數(shù)據(jù)集,則計(jì)數(shù)為 1。如果找不到變量,計(jì)數(shù)為 0。
要在多個(gè)數(shù)據(jù)集合的一個(gè)中引用 QueryString 變量,請(qǐng)指定 index 的值。index 參數(shù)可以是 1 到 Request.QueryString(variable).Count 中任意值。如果沒(méi)有指定 index 的值,引用多個(gè) QueryString 變量中的某個(gè)變量時(shí),返回的數(shù)據(jù)是逗號(hào)分隔的字符串。
在 Request.QueryString 中使用參數(shù)時(shí),服務(wù)器分析發(fā)送給請(qǐng)求的參數(shù),并返回指定的數(shù)據(jù)。如果應(yīng)用程序需要未分析的 QueryString 數(shù)據(jù),可以通過(guò)調(diào)用不帶參數(shù)的 Request.QueryString 檢索到這個(gè)數(shù)據(jù)。
可以使用復(fù)述符在查詢字符串中循環(huán)遍歷所有的數(shù)據(jù)值。例如,如果發(fā)送以下的請(qǐng)求
http://NAMES.ASP?Q=Fred&Q=Sally
而且 Names.asp 包含下面的腳本,
---NAMES.ASP---
<%
For Each item In Request.QueryString("Q")
Response.Write item & "<BR>"
Next
%>
Names.asp 將顯示如下。
Fred
Sally
上述腳本也可以用 Count 來(lái)寫。
<%
For I = 1 To Request.QueryString("Q").Count
Response.Write Request.QueryString("Q")(I) & "<BR>"
Next
%>
示例
客戶端請(qǐng)求
/scripts/directory-lookup.asp?name=fred&age=22
results in the following QUERY_STRING value.
name=fred&age=22.
QueryString 集合將包含 name 和 age兩個(gè)成員。那么,您就可以使用下面的腳本。
Welcome, <%= Request.QueryString("name") %>.
Your age is <%= Request.QueryString("age") %>.
將輸出
Welcome, Fred. Your age is 22.
如果使用下面的腳本
The unparsed query string is: <%=Request.QueryString %>
將輸出
The unparsed query string is: name=fred&age=22
ServerVariables
ServerVariables 集合檢索預(yù)定的環(huán)境變量。
語(yǔ)法
Request.ServerVariables (server environment variable)
參數(shù)
服務(wù)器環(huán)境變量
指定要檢索的服務(wù)器環(huán)境變量名。可以使用下面列出的值。變量 說(shuō)明
ALL_HTTP 客戶端發(fā)送的所有 HTTP 標(biāo)題文件。
ALL_RAW 檢索未處理表格中所有的標(biāo)題。ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在標(biāo)題文件名前面放置 HTTP_ prefix,并且標(biāo)題名稱總是大寫的。使用 ALL_RAW 時(shí),標(biāo)題名稱和值只在客戶端發(fā)送時(shí)才出現(xiàn)。
APPL_MD_PATH 檢索 ISAPI DLL 的 (WAM) Application 的元數(shù)據(jù)庫(kù)路徑。
APPL_PHYSICAL_PATH 檢索與元數(shù)據(jù)庫(kù)路徑相應(yīng)的物理路徑。IIS 通過(guò)將 APPL_MD_PATH 轉(zhuǎn)換為物理(目錄)路徑以返回值。
AUTH_PASSWORD 該值輸入到客戶端的鑒定對(duì)話中。只有使用基本鑒定時(shí),該變量才可用。
AUTH_TYPE 這是用戶訪問(wèn)受保護(hù)的腳本時(shí),服務(wù)器用于檢驗(yàn)用戶的驗(yàn)證方法。
AUTH_USER 未被鑒定的用戶名。
CERT_COOKIE 客戶端驗(yàn)證的唯一 ID,以字符串方式返回??勺鳛檎麄€(gè)客戶端驗(yàn)證的簽字。
CERT_FLAGS 如有客戶端驗(yàn)證,則 bit0 為 1。
如果客戶端驗(yàn)證的驗(yàn)證人無(wú)效(不在服務(wù)器承認(rèn)的 CA 列表中),bit1 被設(shè)置為 1。
CERT_ISSUER 用戶驗(yàn)證中的頒布者字段(O=MS,OU=IAS,CN=user name,C=USA)。
CERT_KEYSIZE 安全套接字層連接關(guān)鍵字的位數(shù),如 128。
CERT_SECRETKEYSIZE 服務(wù)器驗(yàn)證私人關(guān)鍵字的位數(shù)。如 1024。
CERT_SERIALNUMBER 用戶驗(yàn)證的序列號(hào)字段。
CERT_SERVER_ISSUER 服務(wù)器驗(yàn)證的頒發(fā)者字段。
CERT_SERVER_SUBJECT 服務(wù)器驗(yàn)證的主字段。
CERT_SUBJECT 客戶端驗(yàn)證的主字段。
CONTENT_LENGTH 客戶端發(fā)出內(nèi)容的長(zhǎng)度。
CONTENT_TYPE 內(nèi)容的數(shù)據(jù)類型。同附加信息的查詢一起使用,如 HTTP 查詢 GET、 POST 和 PUT。
GATEWAY_INTERFACE 服務(wù)器使用的 CGI 規(guī)格的修訂。格式為 CGI/revision。
HTTP_<HeaderName> HeaderName 存儲(chǔ)在標(biāo)題文件中的值。未列入該表的標(biāo)題文件必須以 HTTP_ 作為前綴,以使 ServerVariables 集合檢索其值。
注意 服務(wù)器將 HeaderName 中的下劃線(_)解釋為實(shí)際標(biāo)題中的破折號(hào)。例如,如果您指定 HTTP_MY_HEADER,服務(wù)器將搜索以 MY-HEADER 為名發(fā)送的標(biāo)題文件。
HTTPS 如果請(qǐng)求穿過(guò)安全通道(SSL),則返回 ON。如果請(qǐng)求來(lái)自非安全通道,則返回 OFF。
HTTPS_KEYSIZE 安全套接字層連接關(guān)鍵字的位數(shù),如 128。
HTTPS_SECRETKEYSIZE 服務(wù)器驗(yàn)證私人關(guān)鍵字的位數(shù)。如 1024。
HTTPS_SERVER_ISSUER 服務(wù)器驗(yàn)證的頒發(fā)者字段。
HTTPS_SERVER_SUBJECT 服務(wù)器驗(yàn)證的主字段。
INSTANCE_ID 文本格式 IIS 實(shí)例的 ID。如果實(shí)例 ID 為 1,則以字符形式出現(xiàn)。使用該變量可以檢索請(qǐng)求所屬的(元數(shù)據(jù)庫(kù)中)Web 服務(wù)器實(shí)例的 ID。
INSTANCE_META_PATH 響應(yīng)請(qǐng)求的 IIS 實(shí)例的元數(shù)據(jù)庫(kù)路徑。
LOCAL_ADDR 返回接受請(qǐng)求的服務(wù)器地址。如果在綁定多個(gè) IP 地址的多宿主機(jī)器上查找請(qǐng)求所使用的地址時(shí),這條變量非常重要。
LOGON_USER 用戶登錄 Windows NT® 的賬號(hào)。
PATH_INFO 客戶端提供的額外路徑信息??梢允褂眠@些虛擬路徑和 PATH_INFO 服務(wù)器變量訪問(wèn)腳本。如果該信息來(lái)自 URL,在到達(dá) CGI 腳本前就已經(jīng)由服務(wù)器解碼了。
PATH_TRANSLATED PATH_INFO 轉(zhuǎn)換后的版本,該變量獲取路徑并進(jìn)行必要的由虛擬至物理的映射。
QUERY_STRING 查詢 HTTP 請(qǐng)求中問(wèn)號(hào)(?)后的信息。
REMOTE_ADDR 發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī)的 IP 地址。
REMOTE_HOST 發(fā)出請(qǐng)求的主機(jī)名稱。如果服務(wù)器無(wú)此信息,它將設(shè)置為空的 MOTE_ADDR 變量。
REMOTE_USER 用戶發(fā)送的未映射的用戶名字符串。該名稱是用戶實(shí)際發(fā)送的名稱,與服務(wù)器上驗(yàn)證過(guò)濾器修改過(guò)后的名稱相對(duì)。
REQUEST_METHOD 該方法用于提出請(qǐng)求。相當(dāng)于用于 HTTP 的 GET、HEAD、POST 等等。
SCRIPT_NAME 執(zhí)行腳本的虛擬路徑。用于自引用的 URL。
SERVER_NAME 出現(xiàn)在自引用 UAL 中的服務(wù)器主機(jī)名、DNS 化名或 IP 地址。
SERVER_PORT 發(fā)送請(qǐng)求的端口號(hào)。
SERVER_PORT_SECURE 包含 0 或 1 的字符串。如果安全端口處理了請(qǐng)求,則為 1,否則為 0。
SERVER_PROTOCOL 請(qǐng)求信息協(xié)議的名稱和修訂。格式為 protocol/revision 。
SERVER_SOFTWARE 應(yīng)答請(qǐng)求并運(yùn)行網(wǎng)關(guān)的服務(wù)器軟件的名稱和版本。格式為 name/version 。
URL 提供 URL 的基本部分。
注釋
如果客戶端發(fā)送的標(biāo)題文件在上述表格中找不到,可以在調(diào)用 Request.ServerVariables 中給標(biāo)題文件名加上 HTTP_ 的前綴以檢索其值。例如,如果客戶端發(fā)送標(biāo)題文件
SomeNewHeader:SomeNewValue
您可以通過(guò)使用下面的語(yǔ)法檢索 SomeNewValue
<% Request.ServerVariables("HTTP_SomeNewHeader") %>
您可使用重述符以循環(huán)遍歷所有的服務(wù)器變量名。例如,使用下面的腳本打印出所有的服務(wù)器名。
<TABLE>
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each name In Request.ServerVariables %>
<TR><TD> <%= name %> </TD><TD> <%= Request.ServerVariables(name) %> </TD></TR>
</TABLE>
<% Next %>
示例
下面的例子使用 Request 對(duì)象顯示一些服務(wù)器變量。
<HTML>
<!-- This example displays the content of several ServerVariables. -->
ALL_HTTP server variable =
<%= Request.ServerVariables("ALL_HTTP") %> <BR>
CONTENT_LENGTH server variable =
<%= Request.ServerVariables("CONTENT_LENGTH") %> <BR>
CONTENT_TYPE server variable =
<%= Request.ServerVariables("CONTENT_TYPE") %> <BR>
QUERY_STRING server variable =
<%= Request.ServerVariables("QUERY_STRING") %> <BR>
SERVER_SOFTWARE server variable =
<%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR>
</HTML>
下一個(gè)示例使用 ServerVariables 集合將服務(wù)器名插入一個(gè)超文本鏈接。
<A HREF = "http://<;%= Request.ServerVariables("SERVER_NAME") %>
/scripts/MyPage.asp">Link to MyPage.asp</A>
屬性
TotalBytes
TotalBytes 屬性指定客戶端在請(qǐng)求正文中發(fā)送的總字節(jié)數(shù)。該屬性只允許讀。
語(yǔ)法
Counter = Request.TotalBytes
參數(shù)
Counter
指定一個(gè)變量來(lái)接收客戶端在請(qǐng)求中發(fā)送的總字節(jié)數(shù)。
示例
以下腳本設(shè)置一個(gè)等于請(qǐng)求對(duì)象中包括的總字節(jié)數(shù)的變量。
<%
Dim bytecount
bytecount = Request.TotalBytes
%>
方法
BinaryRead
BinaryRead 方法獲取作為 POST 請(qǐng)求的一部分而從客戶端傳送到服務(wù)器的數(shù)據(jù)。此方法獲取來(lái)自客戶端的數(shù)據(jù)并將其儲(chǔ)存在 SafeArray 中。SafeArray 是一個(gè)數(shù)組,其中包含維數(shù)和邊界信息。
語(yǔ)法
variant = Request.BinaryRead(count)
參數(shù)
variant
包含由該方法返回的無(wú)符號(hào)數(shù)的數(shù)組。該參數(shù)的類型為 VT_ARRAY | VT_UI1。
count
在執(zhí)行前,指定要從客戶端讀取的字節(jié)數(shù)。此方法返回后,count 將包含從客戶機(jī)成功讀取的字節(jié)數(shù)。實(shí)際讀取的字節(jié)總數(shù)將小于或等于 Request.TotalBytes。
注釋
BinaryRead 方法用于讀取作為 POST 請(qǐng)求的一部分從客戶端發(fā)出的未加工數(shù)據(jù)。此方法用于在底層訪問(wèn)數(shù)據(jù),與此相反,Request.Form 集合用于查看在公告請(qǐng)求中發(fā)送的表格數(shù)據(jù)。一旦調(diào)用了 BinaryRead,則引用 Request.Form 集合中的任何變量都將導(dǎo)致錯(cuò)誤發(fā)生。反之,一旦引用了 Request.Form 集合中的一個(gè)變量,則調(diào)用 BinaryWrite 也將導(dǎo)致錯(cuò)誤發(fā)生。請(qǐng)記住,如果在訪問(wèn) Request 集合中的變量時(shí)未指定該變量屬于哪一個(gè)子集,將搜索 Request.Form 集合并強(qiáng)制使用上述規(guī)則。
示例
下列示例使用 BinaryRead 方法將請(qǐng)求的內(nèi)容放入一個(gè)安全的數(shù)組中。
<%
Dim binread
Dim bytecount
bytecount = Request.TotalBytes
binread = Request.BinaryRead(bytecount)
%>
如果指定的變量不是上述的五個(gè)集合中的一個(gè),Request 對(duì)象返回 EMPTY。
可以通過(guò)調(diào)用 Request(variable) 直接使用所有的變量,而不需要集合的名稱。正因?yàn)檫@樣,Web 服務(wù)器可以按照下面的順序搜索集合。
QueryString
Form
Cookies
ClientCertificate
ServerVariables
如果同名的變量出現(xiàn)在多個(gè)集合中,Request 對(duì)象返回遇到的第一個(gè)實(shí)例。
我們建議在涉及 ServerVariables 集合的成員時(shí)使用全名。例如,不用 Request.(AUTH_USER) 而用Request.ServerVariables(AUTH_USER) 。
聯(lián)系客服