以下讨论的是和AS脚本 UrlRequest 前端 交互相关的AS脚本与Asp.net通过UrlRequest进行前端交互的心得 教程文章,内容是本站精心挑选整理的教程,希望对广大的网友给到帮助,下面是详细内容:
在.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
[code]var url="http://localhost:25212/index.aspx"; var vari:URLVariables=new URLVariables(); vari.data="{"id":"2"}"; var req:URLRequest=new URLRequest(url); req.data=vari; req.method=URLRequestMethod.POST;[/code]
三:构建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进行解码。
//用urlloader进行装载 var loader:URLLoader=new URLLoader(req); loader.addEventListener(Event.COMPLETE,onComplete); loader.addEventListener(IOErrorEvent.IO_ERROR,onError); //请求加载完成 function onComplete(e:Event):void{ trace(loader.data); }
大体上就这样了,下面我们做个实验,向服务器传递json由服务器端进行处理。
1:服务端代码,只是将请求参数原样返回
public partial class Index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { var data = Request.Form["data"]; Response.Write("恭喜,数据请求成功~ " + data); } }
2:as代码
import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; var url="http://localhost:25212/index.aspx"; var vari:URLVariables=new URLVariables(); vari.data="{"id":"2"}"; var req:URLRequest=new URLRequest(url); req.data=vari; req.method=URLRequestMethod.POST; //用urlloader进行装载 var loader:URLLoader=new URLLoader(req); loader.addEventListener(Event.COMPLETE,onComplete); loader.addEventListener(IOErrorEvent.IO_ERROR,onError); //请求加载完成 function onComplete(e:Event):void{ trace(loader.data); } //io请求错误 function onError(e:IOErrorEvent):void{ trace("对不起,数据请求错误"); }
关于AS脚本与Asp.net通过UrlRequest进行前端交互的心得的内容写到这里就结束啦,您可以收藏本页网址http://www.alixixi.com/biancheng/
a/2018090692878.shtml方便下次再访问哦。