web_custom_request函數(shù)詳解

web_custom_request()函數(shù)是一個(gè)可以用于自定義http請(qǐng)求的“萬(wàn)能”函數(shù)攻臀,一般當(dāng)自定義請(qǐng)求時(shí)可以配合函數(shù)web_add_auto_header()构舟、web_add_header()等系列函數(shù)來(lái)自定義其請(qǐng)求頭,web_custom_request()函數(shù)的Mode字段為HTML時(shí)相當(dāng)于使用HTML錄制方式的函數(shù)炎辨,Mode字段為HTTP時(shí)相當(dāng)于使用URL錄制方式的函數(shù),Method字段可以為GET和POST分別用于模擬http的get和post請(qǐng)求丝格。

請(qǐng)求頭的內(nèi)容撑瞧,可以結(jié)合抓包工具進(jìn)行分析(比如:fiddler)

腳本一:

1 web_custom_request("test1",

2 "URL=http://www.baidu.com",

3 "Method=GET",

4 ?"TargetFrame=",

5 "Resource=0",

6 "Referer=",

7 "Mode=HTTP",

8 "Body=123",

9 LAST);

腳本一實(shí)際發(fā)出的請(qǐng)求:

10 GET / HTTP/1.1

11 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT)

12 Accept-Encoding: gzip, deflate

13 Accept: */*

14 Connection: Keep-Alive

15 Host: www.baidu.com

1 6 Content-Length: 3

123


25腳本二:

1 web_custom_request("web_custom_request",

2 "URL=http://www.baidu.com",

3 "Method=POST",

4 "TargetFrame=",

5 "Resource=0",

6 "Referer=",

7 "Mode=HTTP",

8 "Body=abcd",

9 LAST);

腳本二實(shí)際發(fā)出的請(qǐng)求:

1 POST / HTTP/1.1

2 Content-Type: application/x-www-form-urlencoded

3 Cache-Control: no-cache

4 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT)

5 Accept-Encoding: gzip, deflate

6 Accept: */*

7 Connection: Keep-Alive

8 Host: www.baidu.com

9 Content-Length: 4

10 abcd

web_custom_request函數(shù)之Body詳解:

1. Body:

一般情況下Body中內(nèi)容是作為字面值進(jìn)行發(fā)送的,Body中也可以發(fā)送二進(jìn)制流(用十六進(jìn)制表示)显蝌,方法如下预伺,但僅限二進(jìn)制流中不含空字符\x00,如果一段Body的二進(jìn)制流中有空字符曼尊,則web_custom_request實(shí)際發(fā)送的內(nèi)容為第一個(gè)空字符之前的數(shù)據(jù)酬诀,其后的數(shù)據(jù)(包括空)都會(huì)被截?cái)唷?/p>

例如:

1.1 Body內(nèi)容不含空字符\x00

1 web_custom_request("web_custom_request",

2 "URL=http://www.baidu.com",

3 "Method=POST",

4 "TargetFrame=",

5 "Resource=0",

6 "Referer=",

7 "Mode=HTTP",

8 "Body=\x3d\x9d\x1d\xef\xa4\x04\x41",

9 LAST);

發(fā)送數(shù)據(jù)包的Body內(nèi)容為:

1.2 Body內(nèi)容含空字符\x00


1 web_custom_request("web_custom_request",

2 "URL=http://www.baidu.com",

3 "Method=POST",

4 "TargetFrame=",

5 "Resource=0",

6 "Referer=",

7 "Mode=HTTP",

8 "Body=\x3d\x00\x9d\x1d\xef\xa4\x00\x04\x41",

9 LAST);

發(fā)送數(shù)據(jù)包的Body內(nèi)容為:

因此使用Body是無(wú)法發(fā)送含有空的二進(jìn)制數(shù)據(jù)流的,此外骆撇,Body中的內(nèi)容可以使用參數(shù)替代瞒御,web_custom_request函數(shù)的整個(gè)Body字符串參數(shù)("Body=abcd")也是可以使用一個(gè)變量(數(shù)組或字符指針)來(lái)替代的,注意點(diǎn):1神郊、變量中的內(nèi)容不需要含有雙引號(hào)肴裙,例如:char BodyVar[20] = "Body=abcd"; 2、使用變量時(shí)后面加一個(gè)逗號(hào)屿岂,例如:BodyVar,?践宴。

2.?BodyBinary:

當(dāng)要發(fā)送的二進(jìn)制數(shù)據(jù)流中含有空時(shí)可以使用BodyBinary來(lái)發(fā)送,注意下面的代碼爷怀,發(fā)送的請(qǐng)求中第一個(gè)空之后的數(shù)據(jù)仍然被截?cái)啵?發(fā)送數(shù)據(jù)包的Body內(nèi)容同1.2中的截圖:

1web_custom_request("web_custom_request",


2"URL=http://www.baidu.com",


3"Method=POST",


4"TargetFrame=",


5"Resource=0",


6"Referer=",


7"Mode=HTTP",

8"BodyBinary=\x3d\x00\x9d\x1d\xef\xa4\x00\x04\x41\x00\x00\x42",

9 LAST);

正確的寫(xiě)法如下阻肩,使用兩個(gè)轉(zhuǎn)義字符:


1 web_custom_request("web_custom_request",

2 "URL=http://www.baidu.com",

3 "Method=POST",

4 "TargetFrame=",

5 "Resource=0",

6 "Referer=",

7 "Mode=HTTP",

8 "BodyBinary=\\x3d\\x00\\x9d\\x1d\\xef\\xa4\\x00\\x04\\x41\\x00\\x00\\x42",

9 LAST);

即二進(jìn)制數(shù)據(jù)流中含有空也是可以發(fā)送的,上面一欄顯示的是八進(jìn)制表示运授。

BodyBinary中的內(nèi)容同樣可以使用參數(shù)替代烤惊,整個(gè)BodyBinary字符串參數(shù)同樣可以使用變量替換。如下:


1 char*sendbufhex ="\\x3d\\x00\\x9d\\x1d\\xef\\xa4\\x00\\x04\\x41\\x00\\x00\\x42";

2 lr_save_string(sendbufhex,"sendbufhexParam");

3 web_custom_request("web_custom_request",

4 "URL=http://www.baidu.com",

5 "Method=POST",

6 "TargetFrame=",

7 "Resource=0",

8 "Referer=",

9 "Mode=HTTP",

10 "BodyBinary={sendbufhexParam}",

11 LAST);

12 char*sendbufhexBody ="BodyBinary=\\x3d\\x00\\x9d\\x1d\\xef\\xa4\\x00\\x04\\x41\\x00\\x00\\x42";


1 web_custom_request("web_custom_request",

2 "URL=http://www.baidu.com",

3 "Method=POST",

?4 "TargetFrame=",

5 "Resource=0",

6 "Referer=",

7 "Mode=HTTP",

8 sendbufhexBody,

9 LAST);

但是當(dāng)參數(shù)或變量中的內(nèi)容并不是上面這樣直接賦值一個(gè)常量字符串吁朦,而是通過(guò)其他拆分拼接而來(lái)時(shí)柒室,就只需要使用一個(gè)反斜桿,比如:我要發(fā)送的的一串二進(jìn)制流的十六進(jìn)制字符串為:3d009d1defa4000441000042逗宜,參數(shù)寫(xiě)法代碼如下:


1 charsendbuf[100] ="3d009d1defa4000441000042";

2 charsendbufhex[100];

3 chartemp[100];

4 intsendbuflen,i;

5 sendbuflen = strlen(sendbuf);

6 memset(sendbufhex,'\0',sizeof(sendbufhex));

7 for(i=0;i

8 {

9 memset(temp,'\0',sizeof(temp));

10 temp[0] ='\\';

11 temp[1] ='x';

12 temp[2] = sendbuf[i];

13 temp[3] = sendbuf[i+1];

14 lr_output_message("Notify:temp:%s",temp);

15 strcat(sendbufhex,temp);

16 }

17 lr_output_message("Notify:sendbufhex:%s",sendbufhex);

18 lr_save_string(sendbufhex,"sendbufhexParam");

19 lr_output_message("Notify:sendbufhexParam:%s",lr_eval_string("{sendbufhexParam}"));

20 web_custom_request("web_custom_request",

21 "URL=http://www.baidu.com",

22 "Method=POST",

23 "TargetFrame=",

24 "Resource=0",

25 "Referer=",

26 "Mode=HTTP",

27 "BodyBinary={sendbufhexParam}",

28 LAST);

特別注意:拼接的參數(shù)中只需要一個(gè)飯斜杠而不是兩個(gè)飯斜杠雄右,”3d009d1defa4000441000042" ?==》 "\x3d\x00\x9d\x1d\xef\xa4\x00\x04\x41\x00\x00\x42"

變量替換寫(xiě)法代碼如下:


1 charsendbuf[100] ="3d009d1defa4000441000042";

2 charsendbufhex[100];

3 chartemp[100];

4 intsendbuflen,i;

5 sendbuflen = strlen(sendbuf);

6 lr_output_message("Notify:sendbuflen:%d",sendbuflen);

7 memset(sendbufhex,'\0',sizeof(sendbufhex));

8 strcat(sendbufhex,"BodyBinary=");

9 for(i=0;i

10 {

11 memset(temp,'\0',sizeof(temp));

12 temp[0] ='\\';

13 temp[1] ='x';

14 temp[2] = sendbuf[i];

15 temp[3] = sendbuf[i+1]??? ;

16 lr_output_message("Notify:temp:%s",temp);

17 strcat(sendbufhex,temp);

18 }

19 lr_output_message("Notify:sendbufhex:%s",sendbufhex);

20 web_custom_request("web_custom_request",

21 "URL=http://www.baidu.com",

22 "Method=POST",

23 ?"TargetFrame=",

24 "Resource=0",

25 "Referer=",

26 "Mode=HTTP",

27 sendbufhex,

28 LAST);

3.?RAW_BODY

可用于發(fā)送json格式的數(shù)據(jù):


1 ?web_custom_request("request",//隨便寫(xiě)個(gè)名字

2 ?"Method=POST",//請(qǐng)求的方法

3 ?"URL=http://www.baidu.com",??????? //請(qǐng)求地址

4 ?"RecContentType=application/json",//指定相應(yīng)頭的Content-Type,這里是JSON

5 ?"EncType=application/json",//指定請(qǐng)求頭的Content-Type纺讲,這里也是JSON

6 ?"Mode=HTML",

7 ?RAW_BODY_START,//請(qǐng)求BODY開(kāi)始的標(biāo)識(shí)符

8 "{\"userIds\":[1300000001,1300002029,1300003163],\"type\":0}",//BODY的內(nèi)容

? 9 55,//上面一行BODY內(nèi)容的長(zhǎng)度

10 RAW_BODY_END,//請(qǐng)求BODY結(jié)束的標(biāo)識(shí)符

11 LAST);

實(shí)際發(fā)送的數(shù)據(jù)內(nèi)容為:

web_custom_request函數(shù)語(yǔ)法詳解

語(yǔ)法:

Int web_custom_request (const char *RequestName, ,[EXTRARES, ,] LAST );

返回值:

LR_PASS(0)代表成功

LR_FAIL(1)代表失敗擂仍。

參數(shù):

1、RequestName:步驟的名稱熬甚,VuGen中樹(shù)形視圖中顯示的名稱逢渔。

2、List of Attribute:支持的屬性有以下幾種:

1)URL:

頁(yè)面地址乡括。

2)Method :

頁(yè)面的提交方式肃廓,POST或GET智厌。

3)EncType:

編碼類型。此參數(shù)給出一個(gè)內(nèi)容類型(Content-Type)盲赊,指定其做為回放腳本時(shí)“Content-Type”請(qǐng)求頭的值铣鹏,例如“text/html”。Web_custom_request函數(shù)不處理未編碼的請(qǐng)求體角钩。請(qǐng)求體參數(shù)將會(huì)使用已經(jīng)指定的編碼方式吝沫。因此呻澜,如果指定了不匹配HTTP請(qǐng)求體的“EncType”,會(huì)引發(fā)服務(wù)端的錯(cuò)誤递礼。通常我們建議不要手動(dòng)修改錄制時(shí)的“EncType”值。

任何對(duì)于“EncType”的指定都會(huì)覆蓋web_add_[auto_]header函數(shù)指定的Content-Type羹幸。當(dāng)指定了“EncType=”(空值)時(shí)脊髓,不會(huì)產(chǎn)生“Content-Type” 請(qǐng)求頭。當(dāng)省略了“EncType”時(shí)栅受,任何一個(gè)web_add_[auto_]header函數(shù)都會(huì)起作用将硝。如果既沒(méi)有指定EncType也沒(méi)有web_add_[auto_]header函且“Method=POST”,

“application/x-www-form-urlencoded”會(huì)做為默認(rèn)值來(lái)使用屏镊。其他情況下依疼,不會(huì)產(chǎn)生Content-Type請(qǐng)求頭。

4)BodyFilePath:

作為請(qǐng)求體傳送的文件的路徑而芥。它不能與下面的屬性一起使用:Body律罢,或者其他Body屬性或Raw Body屬性包括BodyBinary,BodyUnicode棍丐,RAW_BODY_START或Binary=1误辑。

5)UserAgent:

用戶代理,它是一個(gè)HTTP頭的名字歌逢,用來(lái)標(biāo)識(shí)應(yīng)用程序巾钉,通常是瀏覽器,它呈現(xiàn)的是用戶和服務(wù)器的交互秘案。

例如:頭信息“User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”識(shí)別的是Window NT下的IE瀏覽器6.0砰苍。其他的User-Agent的值用來(lái)描述其他的瀏覽器,或者非瀏覽器程序阱高。通常赚导,一個(gè)應(yīng)用程序中所有的請(qǐng)求都使用相同的用戶代理,錄制者作為一個(gè)運(yùn)行時(shí)參數(shù)來(lái)指定(Run-Time Setting—Browser Emulation—User Agent)讨惩。不管怎么說(shuō)辟癌,即使是在一個(gè)簡(jiǎn)單的瀏覽器進(jìn)程中,仍有可能會(huì)用到直接與服務(wù)器交互的非瀏覽器組件(例如ActiveX控件)荐捻,通常他們有著不同于瀏覽器的用戶代理屬性黍少。指定“UserAgent”表示這是一個(gè)非瀏覽器的請(qǐng)求寡夹。指定的字符串被HTTP頭“User-Agent:” 使用,在某些情況下厂置,它同時(shí)會(huì)影響回放腳本時(shí)的行為菩掏。例如,不使用瀏覽器緩存昵济,假設(shè)指定的URL屬于資源等等智绸。(LoadRunner本身不檢查指定的字符串與瀏覽器本身的值是否相同)

6)Binary:

“Binary=1”表示頁(yè)面請(qǐng)求體中的每一個(gè)以file://x/##形式出現(xiàn)的值(在這里“##”代表2個(gè)十六進(jìn)制數(shù)字),都會(huì)被替換為單字節(jié)的十六進(jìn)制的值访忿。如果“Binary=0”(默認(rèn)值)瞧栗,所有的字符序列只是按照字面的值傳遞。需要注意雙斜杠的用法海铆。在C編譯器中雙斜杠被解釋為單斜杠迹恐。如果不需要零字節(jié),單斜杠可以在Binary不等于1的情況下使用(例如卧斟,使用\x20代替file://x20/)殴边。如果需要零字節(jié),那么只能使用file://x00/且設(shè)置 “Binary=1”珍语,\x00在邏輯上會(huì)被截?cái)唷?/p>

7)ContentEncoding

指定請(qǐng)求體的使用指定的方式(gzip或者deflate)進(jìn)行編碼(例如锤岸,壓縮),相應(yīng)的“Content-Encoding:” HTTP頭會(huì)和此請(qǐng)求一起發(fā)送板乙。這個(gè)參數(shù)適用于web_custom_request和web_submit_data是偷。

8)FtpAscii:

“1”使用ASCII模式處理FTP操作;"0" 使用二進(jìn)制模式亡驰。

9)TargetFrame:

當(dāng)前鏈接或資源所在Frame的名稱晓猛。除了Frame的名字,還可以指定下面的參數(shù):

_BLANK:打開(kāi)一個(gè)空窗口凡辱。

_PARENT:把最新更改過(guò)的的Frame替換為它的上級(jí)戒职。

_SELF:替換最新更改過(guò)的的Frame。

_TOP:替換整個(gè)頁(yè)面透乾。

10)RecContentType:

錄制腳本時(shí)響應(yīng)頭的內(nèi)容類型洪燥。例如text/html、 application/x-javascript等乳乌。當(dāng)沒(méi)有設(shè)置Resource屬性時(shí)捧韵,用它來(lái)確定目標(biāo)URL是否是可記錄的資源。此屬性包含主要的和次要的資源汉操。最頻繁使用的類型是 text再来、application、image。次要的類型根據(jù)資源不同變化很多芒篷。例如:"RecContentType=text/html":表示html文本搜变。"RecContentType=application/msword":表示當(dāng)前使用的是Msword。

11)Referer:

當(dāng)前頁(yè)面關(guān)聯(lián)的頁(yè)面针炉。如果已經(jīng)顯式指定了url的地址挠他,此項(xiàng)可以省略。

12)Resource:

指示URL是否屬于資源篡帕。1 是殖侵;0 不是。設(shè)置了這個(gè)參數(shù)后镰烧,RecContentType參數(shù)被忽略拢军。“Resource=1”拌滋,意味著當(dāng)前操作與所在腳本的成功與否關(guān)系不大朴沿。在下載資源時(shí)如果發(fā)生錯(cuò)誤猜谚,是當(dāng)作警告而不是錯(cuò)誤來(lái)處理的败砂;URL是否被下載受“Run-Time Setting—Browser Emulation--Download non-HTML resources” 這個(gè)選項(xiàng)的影響。此操作的響應(yīng)信息是不做為HTML來(lái)解析的魏铅〔蹋“Resource=0”,表明此URL是重要的览芳,不受發(fā)送請(qǐng)求(RTS)的影響斜姥,在需要時(shí)也會(huì)解析它。

13)ResourceByteLimit:

web頁(yè)面下載資源的極限大小沧竟。當(dāng)達(dá)到設(shè)置的極限后铸敏,無(wú)法下載其他資源。僅僅對(duì)需要下載的資源有效悟泵。下載過(guò)程:如果總計(jì)下載大小小于極限值杈笔,則正常開(kāi)始下載。如果當(dāng)下載時(shí)達(dá)到了設(shè)置的極限值糕非,資源大小可知(在HTTP響應(yīng)頭中指定了Content-Length)蒙具,這中情況下,如果只需要一個(gè)緩沖區(qū)朽肥,那么下載可以正常完成禁筏。如果需要的不止一個(gè)緩沖區(qū),或者資源大小不可知衡招,下載就會(huì)中斷同時(shí)關(guān)閉當(dāng)前連接篱昔。這個(gè)特性可以用來(lái)模擬用戶不等待一個(gè)頁(yè)面下載完成時(shí)導(dǎo)航到另一個(gè)頁(yè)面的情況。在HTTP模式中無(wú)法使用始腾,在Concurrent Groups(Vuser腳本中的一個(gè)區(qū)州刽,此區(qū)中的所有函數(shù)并發(fā)執(zhí)行)區(qū)中也無(wú)法使用舀射。僅僅適用于Sockets的回放,WinInet也是不適用的怀伦。

14)Snapshot:

快照的文件名脆烟。

15)Mode:

兩種錄制級(jí)別HTML、HTTP房待。HTML級(jí)別--在當(dāng)前Web界面上錄制直觀的HTML動(dòng)作邢羔。以一步步的web_url、web_link桑孩、web_image拜鹤、web_submit_form來(lái)錄制這些動(dòng)作。VuGen僅僅錄制返回HTML頁(yè)面的請(qǐng)求流椒,不處理腳本和應(yīng)用程序敏簿。HTTP級(jí)別--VuGen把所有的請(qǐng)求錄制為web_url指令,不生成web_link宣虾、web_image惯裕、web_submit_form這些函數(shù)。這種方法更為靈活绣硝,但是生成的腳本不夠直觀蜻势。

16)ExtraResBaseDir:

根URL,放在EXTRARES組里鹉胖。它是用來(lái)解析相對(duì)URL的(譯者加:類似于Windows的相對(duì)路徑和絕對(duì)路徑)握玛。URL可以是絕對(duì)路徑(例如http://weather.abc.com/weather/forecast.jsp?locCode=LFPO),也可以是相對(duì)路徑(例如“forecast.jsp?locCode=LFPO”)甫菠。真正的URL的下載是通過(guò)絕對(duì)路徑進(jìn)行的挠铲,所以相對(duì)URL路徑必須使用根路徑URL去解析。例如寂诱,使用http://weather.abc.com/weather/做為根路徑來(lái)解析“forecast.jsp?locCode=LFPO”拂苹,最后的URL是:http://weather.abc.com/weather/forecast.jsp?locCode=LFPO。如果沒(méi)有指定“ExtraResBaseDir”刹衫,默認(rèn)的根URL是主頁(yè)面的URL醋寝。

17)Body:

請(qǐng)求體。不同的應(yīng)用中带迟,請(qǐng)求體分別通過(guò)Body音羞、BodyBinary或者BodyUnicode參數(shù)來(lái)傳遞。請(qǐng)求體可以只使用其中一個(gè)參數(shù)仓犬,也可以使用一連串的分開(kāi)的參數(shù)組成多請(qǐng)求體嗅绰。例如:

web_custom_request(

……

"BodyUnicode=REPRICE"

"BodyBinary=\\x08\\x00\\xCC\\x02\\x00\\x00"

"Body=.\r\n"

"-dxjjtbw/(.tp?eg:ch/6--\r\n",

LAST);

在上面的代碼中,使用了3個(gè)參數(shù)來(lái)劃分請(qǐng)求體窘面,一個(gè)是Unicode段翠语,一個(gè)是二進(jìn)制段,最后一個(gè)是常規(guī)的字符串财边。最終的請(qǐng)求體是這3個(gè)參數(shù)按照在函數(shù)中的順序連接起來(lái)的值肌括。還有一個(gè)很少用到的參數(shù),Binary酣难。它也能描述二進(jìn)制請(qǐng)求體谍夭,但只允許函數(shù)中只有一個(gè)請(qǐng)求體參數(shù)。所有的請(qǐng)求體都是ASCII字符憨募,以null結(jié)束紧索。

Body--表示規(guī)則的,可打印的字符串菜谣。無(wú)法表示空字節(jié)珠漂。所有的字符都以一個(gè)反斜杠表示。注意:在舊的腳本中,可以看見(jiàn)不可打印的字符在請(qǐng)求體中以16進(jìn)制方式進(jìn)行編碼尾膊。(例如 “\\x5c”)媳危,在這種情況下,必須使用“Binary=1”來(lái)標(biāo)識(shí)眯停〖糜撸空字節(jié)使用"file://0.0.0.0/"來(lái)表示。 相反莺债,新腳本則會(huì)把把請(qǐng)求體分開(kāi)放在不同的參數(shù)中("Body=...", "BodyBinary=...", Body=...")。

BodyBinary--表示二進(jìn)制代碼签夭。不可打印的字符在請(qǐng)求體中以16進(jìn)制方式file://xhh/進(jìn)行編碼齐邦。在這里HH 表示十六進(jìn)制值〉谧猓空字節(jié)使用"file://0.0.0.0/"來(lái)表示措拇。

BodyUnicode--美國(guó)英語(yǔ),特指拉丁UTF-16LE(little-endian)編碼慎宾。這種編碼方式會(huì)在在每個(gè)字符末尾附加一個(gè)0字節(jié)丐吓,以便使字符更可讀。但是在VuGen中實(shí)際的參數(shù)把所有的0字節(jié)都去掉的趟据。但是在發(fā)送給Web服務(wù)器之前, web_custom_request函數(shù)會(huì)重新添加0字節(jié)的券犁。對(duì)于不可打印的字符,使用單反斜杠表示,無(wú)法表示空字節(jié)汹碱。

注意:如果請(qǐng)求體大于100K,會(huì)使用一個(gè)變量來(lái)代替Body參數(shù)粘衬。變量是在 lrw_custom_body.h中定義的。

18)Raw Body:

請(qǐng)求體是作為指針傳遞的,此指針指向一串?dāng)?shù)據(jù)稚新。 二進(jìn)制的請(qǐng)求體可以使用BodyBinary 屬性來(lái)發(fā)送(或者使用Body 屬性來(lái)傳遞,前提是必設(shè)置

"Binary=1" )勘伺。無(wú)論如何,這種方法需要使用轉(zhuǎn)義字符反斜杠把不可打印的字符轉(zhuǎn)換為ASCII字符。為了能有一種更簡(jiǎn)便的表現(xiàn)原始數(shù)據(jù)的方式褂删,Raw Body屬性應(yīng)運(yùn)而生飞醉,可以傳遞指向二進(jìn)制數(shù)據(jù)的指針。使用4個(gè)連續(xù)的參數(shù)集來(lái)表示指針屯阀,而且必須按照順序排列:

RAW_BODY_START

指向數(shù)據(jù)緩沖區(qū)的指針

(int) 長(zhǎng)度

RAW_BODY_END

例子:

char *abc= .../* a pointer to the raw data */

web_custom_request("StepName",

"URL=http://some.url ",

"Method=POST",

RAW_BODY_START,

"abc",

3,

RAW_BODY_END,

LAST);

在應(yīng)用中冒掌,即使設(shè)置了數(shù)據(jù)的長(zhǎng)度為0,指針也必須有值蹲盘,不能為空股毫。在“Binary=1”時(shí),不能使用上面的語(yǔ)法傳遞原始數(shù)據(jù)召衔。數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)不能使用參數(shù)化铃诬。也就時(shí)說(shuō),緩沖區(qū)中的任何參數(shù)(例如 "{MyParam}")不能被正確的替代為相應(yīng)的值苍凛,只會(huì)以字面值發(fā)送趣席。

3、EXTRARES:表明下面的參數(shù)將會(huì)是List Of Resource Attributes了醇蝴。

4宣肚、LAST :結(jié)尾的標(biāo)示符。

5悠栓、List of Resource Attributes

僅僅當(dāng)Recording Options--Recording --HTML-based script-- Record within the current script step選項(xiàng)被選中時(shí)霉涨,List of Resource Attributes才會(huì)被插入到代碼中。Web頁(yè)面中的非HTML機(jī)制產(chǎn)生了資源列表惭适,包含了Javascript, ActiveX, Java applets and Flash所請(qǐng)求的資源笙瑟。VuGen's 的Recording 選項(xiàng)中,可以設(shè)置把這些資源錄制在當(dāng)前的操作中(默認(rèn)是此設(shè)置)還是作為單獨(dú)的步驟來(lái)錄制癞志。

不斷的總結(jié)往枷,才能不斷的提高;不斷的思考凄杯,才能不斷的進(jìn)步错洁!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市戒突,隨后出現(xiàn)的幾起案子屯碴,更是在濱河造成了極大的恐慌,老刑警劉巖妖谴,帶你破解...
    沈念sama閱讀 224,764評(píng)論 6 522
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窿锉,死亡現(xiàn)場(chǎng)離奇詭異酌摇,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)嗡载,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 96,235評(píng)論 3 402
  • 文/潘曉璐 我一進(jìn)店門(mén)窑多,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人洼滚,你說(shuō)我怎么就攤上這事埂息。” “怎么了遥巴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 171,965評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵千康,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我铲掐,道長(zhǎng)拾弃,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,984評(píng)論 1 300
  • 正文 為了忘掉前任摆霉,我火速辦了婚禮豪椿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘携栋。我一直安慰自己搭盾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,984評(píng)論 6 399
  • 文/花漫 我一把揭開(kāi)白布婉支。 她就那樣靜靜地躺著鸯隅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪向挖。 梳的紋絲不亂的頭發(fā)上蝌以,一...
    開(kāi)封第一講書(shū)人閱讀 53,471評(píng)論 1 314
  • 那天户誓,我揣著相機(jī)與錄音,去河邊找鬼帝美。 笑死晤硕,一個(gè)胖子當(dāng)著我的面吹牛悼潭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播舞箍,決...
    沈念sama閱讀 41,844評(píng)論 3 428
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼疏橄,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼占拍!你這毒婦竟也來(lái)了略就?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,818評(píng)論 0 279
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晃酒,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后崔兴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蛔翅,經(jīng)...
    沈念sama閱讀 47,359評(píng)論 1 324
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 39,385評(píng)論 3 346
  • 正文 我和宋清朗相戀三年堰燎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了笋轨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 41,515評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸟款,死狀恐怖茂卦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情等龙,我是刑警寧澤,帶...
    沈念sama閱讀 37,114評(píng)論 5 350
  • 正文 年R本政府宣布罐栈,位于F島的核電站泥畅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柑贞。R本人自食惡果不足惜聂抢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,836評(píng)論 3 338
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望有决。 院中可真熱鬧,春花似錦书幕、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 33,291評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)励七。三九已至,卻和暖如春吼野,著一層夾襖步出監(jiān)牢的瞬間两波,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 34,422評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工单起, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劣坊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 50,064評(píng)論 3 381
  • 正文 我出身青樓测蘑,卻偏偏與公主長(zhǎng)得像康二,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沫勿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 46,581評(píng)論 2 365

推薦閱讀更多精彩內(nèi)容

  • 語(yǔ)法: Int web_custom_request (const char *RequestName, , [E...
    maple_若塵閱讀 2,401評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理烫罩,服務(wù)發(fā)現(xiàn)洽故,斷路器盗誊,智...
    卡卡羅2017閱讀 134,745評(píng)論 18 139
  • 點(diǎn)擊查看原文 Web SDK 開(kāi)發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 13,802評(píng)論 0 15
  • 一說(shuō)到REST隘弊,我想大家的第一反應(yīng)就是“啊荒适,就是那種前后臺(tái)通信方式⊙噬龋”但是在要求詳細(xì)講述它所提出的各個(gè)約束陕壹,以及如...
    時(shí)待吾閱讀 3,435評(píng)論 0 19
  • 如果問(wèn)我參加潛能營(yíng)最大的收獲是什么毕匀,我會(huì)說(shuō):遇到了涂小鴉。 我不太會(huì)主動(dòng)勾搭別人蹋笼,一般都是默默等待別人加我凤薛。那天,...
    曾雨悅閱讀 672評(píng)論 6 5