html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

AS与Asp.net的交互――详解UrlRequest_.NET教程_编程技术

[ ] 已经帮助:人解决问题

 在.net中我们知道有一个叫做WebHttpRequest的东西,用它我们可以实现各种网络偷窥,监控,采集和机器人,如果外加一6gJHTML5中文学习网 - HTML5先行者学习网

个模式识别,那真是吊爆了。。。6gJHTML5中文学习网 - HTML5先行者学习网

     在as中我们也可以实现同样的功能,而且我们可以配合js来做到跨域,采集cookie等等一些用户行为分析,也算是web开发中6gJHTML5中文学习网 - HTML5先行者学习网

的一把利器。6gJHTML5中文学习网 - HTML5先行者学习网

一:构建与外部程序的通信6gJHTML5中文学习网 - HTML5先行者学习网

  6gJHTML5中文学习网 - HTML5先行者学习网

1:一般要三个步骤6gJHTML5中文学习网 - HTML5先行者学习网

<1> 使用UrlRequest创建请求对象。6gJHTML5中文学习网 - HTML5先行者学习网

<2> 使用UrlLoader载入请求对象,然后就可以发出请求了。6gJHTML5中文学习网 - HTML5先行者学习网

<3> 监听UrlLoader对象,通过各种事件来反馈处理的结果。6gJHTML5中文学习网 - HTML5先行者学习网

二:构建UrlRequest6gJHTML5中文学习网 - HTML5先行者学习网

下面来看看UrlRequest中的常用属性6gJHTML5中文学习网 - HTML5先行者学习网

1: url6gJHTML5中文学习网 - HTML5先行者学习网

这个很简单了,请求网址,可以是绝对也可以是相对的。6gJHTML5中文学习网 - HTML5先行者学习网

2:method6gJHTML5中文学习网 - HTML5先行者学习网

写过ajax都知道,它是用来控制窗体的提交方式是post还是get,什么get不能大于2k,post无限制等等。6gJHTML5中文学习网 - HTML5先行者学习网

3:requestHeader6gJHTML5中文学习网 - HTML5先行者学习网

我们知道模拟提交都会在http的head中追加各种参数来欺骗服务器端,伪装自己是真实的人为请求。6gJHTML5中文学习网 - HTML5先行者学习网

4:data6gJHTML5中文学习网 - HTML5先行者学习网

就是请求时附带给服务器端的数据,用json格式,url的kv形式都可以,但必须用URLVariables进行封装。6gJHTML5中文学习网 - HTML5先行者学习网

5:简单的demo6gJHTML5中文学习网 - HTML5先行者学习网

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对象6gJHTML5中文学习网 - HTML5先行者学习网

<一>: 在as中,所有的UrlRequest都需要用UrlLoader来装载才能进行与后端程序进行交互,同时提供了5个事件来监听当前请求的状况。6gJHTML5中文学习网 - HTML5先行者学习网

1: open事件 6gJHTML5中文学习网 - HTML5先行者学习网

    请求操作开始时执行的事件6gJHTML5中文学习网 - HTML5先行者学习网

2:progress事件6gJHTML5中文学习网 - HTML5先行者学习网

    常用监控下载进度,可以通过byteloaded和bytetotal来实时查看“已加载的数据”和“总数据”。6gJHTML5中文学习网 - HTML5先行者学习网

3:complete事件6gJHTML5中文学习网 - HTML5先行者学习网

    成功加载数据后调用的事件,也是最常用的。6gJHTML5中文学习网 - HTML5先行者学习网

4:ioError事件6gJHTML5中文学习网 - HTML5先行者学习网

    就像ajax一样,请求失败的时候调用的事件。6gJHTML5中文学习网 - HTML5先行者学习网

<二>: 当远程返回数据的时候,数据都会保存在urlloader中data属性里,当然数据返回的时候是什么类型,取决与我们在post
6gJHTML5中文学习网 - HTML5先行者学习网

         的时候指定的URLLoaderDataFormat。6gJHTML5中文学习网 - HTML5先行者学习网

1:URLLoaderDataFormat.TEXT6gJHTML5中文学习网 - HTML5先行者学习网

     指定当前返回data值必须是text值,当然这也是默认值。6gJHTML5中文学习网 - HTML5先行者学习网

2:URLLoaderDataFormat.BINARY6gJHTML5中文学习网 - HTML5先行者学习网

     有时候我们flash需要加载web端的二进制数据的时候,这时候就要指定BINARY属性。6gJHTML5中文学习网 - HTML5先行者学习网

3:URLLoaderDataFormat.VARIABLES6gJHTML5中文学习网 - HTML5先行者学习网

   这个就是指定包含的数据是一个经过url编码的数据,所以我们用VARIABLES进行解码。6gJHTML5中文学习网 - HTML5先行者学习网

//用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由服务器端进行处理。6gJHTML5中文学习网 - HTML5先行者学习网

1:服务端代码,只是将请求参数原样返回6gJHTML5中文学习网 - HTML5先行者学习网

public partial class Index : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            var data = Request.Form["data"];            Response.Write("恭喜,数据请求成功~   " + data);        }    }

6gJHTML5中文学习网 - HTML5先行者学习网

2:as代码6gJHTML5中文学习网 - HTML5先行者学习网

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("对不起,数据请求错误");}

6gJHTML5中文学习网 - HTML5先行者学习网

6gJHTML5中文学习网 - HTML5先行者学习网
6gJHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助