AS与.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
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对象
<一>: 在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与.net的交互——详解UrlRequest的更多相关文章
- 【HANA系列】SAP HANA XS使用JavaScript数据交互详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- 【HANA系列】【第一篇】SAP HANA XS使用JavaScript数据交互详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第一篇]SAP HANA XS ...
- [转]OC与JS的交互详解
事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...
- 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
前 言 PHP 学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...
- OC与JS的交互详解
事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...
- Storm元数据交互详解
一.Nimbus Nimbus既需要在Zookeeper中创建元数据,也需要从Zookeeper中获取元数据. 如上图箭头1所示: 1.对于路径a,Nimbus只会创建路径,不会设置数据,数据是稍后由 ...
- odoo前后端交互详解
为了简单叙述,暂时不考虑多个db的情况(主要是懒得说没有db或者多个db实例的情况)当odoo指定数据库开启服务时(也就是odoo-bin -d <some_db_name> ),我们使用 ...
- 【HANA系列】SAP HANA XS使用JavaScript编程详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- linux分析工具之top命令详解
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 一.top ...
随机推荐
- Web API:将FlexChart导出为图片
如果想要将FlexChart在应用之外使用,比如使用在报表中,Web API帮助你将FlexChart导出成任何你需要的图片格式. 下面是实现的步骤: 1:创建FlexChart 2:调用Servic ...
- MySQL的Incorrect string value错误
用以下SQL语句向表2中插入数据: insert into 表2 select * from 表1 结果出现Incorrect string value错误: 打开表2一看,里面全是问号: 后来才发现 ...
- 展示 Popup 的使用方法
源码下载:[原创]展示Popup的使用方法.zip
- 安卓actionbar源码
安卓actionbar源码,该源码转载源码天堂android源码频道的,Actionbar是一个标识应用程序和用户位置的窗口功能.源码我也上传到源码天堂了,大家也可以去那边下载就行了. 本地:源码源码 ...
- MacOS下如何进行Git的冲突(Conflict)处理
Git在做merge时经常碰到冲突的问题,多数情况都是用IDE中集成的"解决冲突"工具解决了,但有时不能依赖IDE时,就得回过头来去搞清楚Git的一些基础操作了. mergetoo ...
- ANDROID学习书单
Skip to content PersonalOpen sourceBusinessExplore Sign upSign in PricingBlogSupport This reposito ...
- GJM :自定义基于 VLC 的视频播放器 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- orcl的小技巧和分页
1Oracle中查看所有用户语句 select * from dba_users 1.修改用户的密码 alter user 用户名 identified by 密码; 2.如何查询stuInfo表中自 ...
- letter-spacing
letter-spacing:3px的意思就是字母之间的间距是3px:
- 一些ajax代码
$.ajax({ type : "get", url : "list_hot_ajax.json", data : {"provinceId" ...