在.net中我們知道有一個叫做webhttprequest的東西,用它我們可以實作各種網絡偷窺,監控,采集和機器人,如果外加一
個模式識别,那真是吊爆了。。。
在as中我們也可以實作同樣的功能,而且我們可以配合js來做到跨域,采集cookie等等一些使用者行為分析,也算是web開發中
的一把利器。
一:建構與外部程式的通信
1:一般要三個步驟
<1> 使用urlrequest建立請求對象。
<2> 使用urlloader載入請求對象,然後就可以送出請求了。
<3> 監聽urlloader對象,通過各種事件來回報處理的結果。
二:建構urlrequest
下面來看看urlrequest中的常用屬性
1: url
這個很簡單了,請求網址,可以是絕對也可以是相對的。
2:method
寫過ajax都知道,它是用來控制窗體的送出方式是post還是get,什麼get不能大于2k,post無限制等等。
3:requestheader
我們知道模拟送出都會在http的head中追加各種參數來欺騙伺服器端,僞裝自己是真實的人為請求。
4:data
就是請求時附帶給伺服器端的資料,用json格式,url的kv形式都可以,但必須用urlvariables進行封裝。
5:簡單的demo
三:建構urlloader對象
<一>: 在as中,所有的urlrequest都需要用urlloader來裝載才能進行與後端程式進行互動,同時提供了5個事件來監聽目前請求的狀況。
1: open事件
請求操作開始時執行的事件
2:progress事件
常用監控下載下傳進度,可以通過byteloaded和bytetotal來實時檢視“已加載的資料”和“總資料”。
3:complete事件
成功加載資料後調用的事件,也是最常用的。
4:ioerror事件
就像ajax一樣,請求失敗的時候調用的事件。
<二>: 當遠端傳回資料的時候,資料都會儲存在urlloader中data屬性裡,當然資料傳回的時候是什麼類型,取決與我們在post
的時候指定的urlloaderdataformat。
1:urlloaderdataformat.text
指定目前傳回data值必須是text值,當然這也是預設值。
2:urlloaderdataformat.binary
有時候我們flash需要加載web端的二進制資料的時候,這時候就要指定binary屬性。
3:urlloaderdataformat.variables
這個就是指定包含的資料是一個經過url編碼的資料,是以我們用variables進行解碼。
大體上就這樣了,下面我們做個實驗,向伺服器傳遞json由伺服器端進行處理。
1:服務端代碼,隻是将請求參數原樣傳回

2:as代碼