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

 

相关文章
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
184 5
|
11月前
|
消息中间件 存储 JSON
Net使用EasyNetQ简化与RabbitMQ的交互
EasyNetQ是专为.NET环境设计的RabbitMQ客户端API,简化了与RabbitMQ的交互过程。通过NuGet安装EasyNetQ,可轻松实现消息的发布与订阅,支持多种消息模式及高级特性。文中提供了详细的安装步骤、代码示例及基础知识介绍,帮助开发者快速上手。关注公众号“Net分享”获取更多技术文章。
316 1
Net使用EasyNetQ简化与RabbitMQ的交互
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
366 0
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
370 0
|
JavaScript C#
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
441 0
|
Windows
艾伟:.NET实现可交互的WINDOWS服务
  这几天想做个文件监控服务,看了一下网上的关于WINDOWS服务的文章,数量都不少,都只讲了如何做一个最基本的服务,却没有讲述如何与用户进行交互。查看了MSDN,看一下关于服务的描述:    Windows 服务应用程序在不同于登录用户的交互区域的窗口区域中运行。
1050 0
|
Python
一起谈.NET技术,在.NET中嵌入IronPython 交互
  随着IronPyhon 2.0 的发布,.NET Dynamic Language Runtime 也更加成熟了,在2.0中我们可以用动态脚本以粘合剂的方式编写架构体系中的各种逻辑单元,既便于修改,又能灵活适合多变的业务场景。
1308 0
|
Web App开发 UED
一起谈.NET技术,Silverlight与HTML双向交互
  Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。   HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。
1083 0
|
.NET 开发框架 前端开发

热门文章

最新文章

下一篇
oss云网关配置