AS3与PHP通信的五种方法(基于HTTP协议)
2012-11-18 20:50
197 查看
基于HTTP协议的,然后主要是下面的五种方法。
/** * 这是基于HTTP协议的 * 一共介绍了五种方法 */ package { import flash.display.Sprite; import flash.events.*; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; import flash.net.URLRequestMethod; import flash.net.URLLoaderDataFormat; import flash.net.URLRequestHeader; import flash.utils.ByteArray; /** * ... * * */ public class ASWithPHP_1 extends Sprite { private var urlLoader:URLLoader; private var phpUrl:URLRequest; public function ASWithPHP_1() { init(); } private function init():void { urlLoader = new URLLoader(); phpUrl = new URLRequest("PHP地址"); /** * 第一种:直接读取PHP里面的数据 */ //---------------------------------------------------------------------- urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; /** * URLLoaderDataFormat.BINARY:String---->指定以原始二进制数据形式接收下载的数据 * URLLoaderDataFormat.TEXT:String----> 指定以文本形式接收已下载的数据 * URLLoaderDataFormat.VARIABLES:String---->指定以 URL 编码变量形式接收下载的数据 */ urlLoader.load(phpUrl); urlLoader.addEventListener(Event.COMPLETE, completeHandler1); //----------------------------------------------------------------------- /** * 第二种:读取PHP生成的xml */ //------------------------------------------------------------------------- urlLoader.load(phpUrl); urlLoader.addEventListener(Event.COMPLETE, completeHandler2); //------------------------------------------------------------------------- /** * 第三种:通过GET方法把参数传到PHP里面 */ //-------------------------------------------------------------------------- phpUrl.method = URLRequestMethod.GET; phpUrl.data = "要传出去的数据"; urlLoader.load(phpUrl); urlLoader.addEventListener(Event.COMPLETE, completeHandler3); //-------------------------------------------------------------------------- /** * 第四种:通过POST方法把参数传到PHP里面 */ //-------------------------------------------------------------------------- phpUrl.method = URLRequestMethod.POST; var vars:URLVariables = new URLVariables(); vars.value1 = "参数1"; vars.value2 = "参数2"; phpUrl.data = vars; urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; urlLoader.load(phpUrl); urlLoader.addEventListener(Event.COMPLETE, completeHandler4); //-------------------------------------------------------------------------- /** * 第五种:二进制通信方法 */ //---------------------------------------------------------------------------- var requestHeader:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); phpUrl.method = URLRequestMethod.POST; phpUrl.requestHeaders.push(requestHeader); var byteArr:ByteArray = new ByteArray(); byteArr.writeByte(12); byteArr.writeUTF("CNSloppyMan"); var sendData:ByteArray = new ByteArray(); sendData.writeInt(byteArr.length); sendData.writeBytes(byteArr); phpUrl.data = sendData; urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.load(phpUrl); urlLoader.addEventListener(Event.COMPLETE, completeHandler5); //----------------------------------------------------------------------------- } private function completeHandler1(e:Event):void { var vars:URLVariables = URLVariables((e.currentTarget as URLLoader).data); trace("接受数据:" + vars.value); //假定value是PHP里面自定义的节点值 } private function completeHandler2(e:Event):void { var xml:XML = new XML((e.currentTarget as URLLoader).data); trace("xml数据:" + xml.toString()); } private function completeHandler3(e:Event):void { trace("GET-已经传出去的数据:" + (e.currentTarget as URLLoader).data); } private function completeHandler4(e:Event):void { trace("POST-已经传出去的数据:" + (e.currentTarget as URLLoader).data); } private function completeHandler5(e:Event):void { var _byteArr:ByteArray = e.currentTarget.data as ByteArray; trace(_byteArr.readInt()); //14 trace(_byteArr.readByte()); //12 trace(_byteArr.readUTF()); //CNSloppyMan } } }
相关文章推荐
- Android中基于Http协议的网络通信的两种方法Get和Post
- Android学习笔记---28_网络通信之通过HTTP协议实现文件上传,组拼http 的post方法,传输内容
- PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
- PHP基于MySQL数据库实现对象持久层的方法
- 基于PHP magic_quotes_gpc的使用方法详解
- 基于PHP magic_quotes_gpc的使用方法详解
- Android与PHP交互:客户端用HTTP协议与服务端通信
- php五种方法获取文件的扩展名
- PHP获取文件扩展名的五种方法
- android客户端和网站数据交互的实现(基于Http协议获取数据方法)
- 基于JSON的Android移动终端与PHP及MySQL数据通信 中文乱码问题
- PHP基于GD库的图像处理方法小结
- 用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。(五种方法实现)
- Python和php通信乱码问题解决方法
- PHP基于curl后台远程登录正方教务系统的方法
- 基于PHP扩展一种处理Emoji方法的类库介绍【Carmela】
- php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
- PHP与Java进行通信的实现方法
- PHP基于单例模式编写PDO类的方法
- 基于PHP读取TXT文件向数据库导入海量数据的方法