`

AS3与PHP通信的五种方法(基于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;  
        /**  
         * ...  
         * @author .....Michael zhang
         * @contact...QQ:271291823 
         */  
          
        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  
            }  
        }  
     
    } 

 

 

 

分享到:
评论

相关推荐

    PHPRPC ——as3的结合……

    基于提供的标题和描述,我们可以推测这是一个关于使用AS3(ActionScript 3)与PHPRPC进行交互的项目,其中FLEX作为前端UI框架。AS3是Adobe Flash Player和Adobe AIR支持的编程语言,常用于创建富互联网应用程序(RIA...

    as3写的基于flash cs6的拍照发送系统

    在本项目中,AS3被用来编写控制摄像头、捕获图像以及与服务器通信的代码。 客户端部分,程序通过调用Flash Player的摄像头API来访问用户设备的摄像头。用户触发拍照后,AS3代码会捕获摄像头的实时帧,并将其转换为...

    as连数据库示例

    总结来说,“as连数据库示例”提供的资源可能包括了AS3客户端代码和服务器端的配置,演示了如何使用AS3与MySQL数据库进行通信。这在开发需要实时数据交换的RIA应用时非常有价值。通过深入理解这个示例,开发者能够更...

    php_pop3操作类

    而POP3(Post Office Protocol Version 3)是一种互联网标准协议,用于接收电子邮件,它允许用户从服务器上读取邮件到本地计算机,通常在离线状态下阅读。 ### PHP与POP3结合的意义 在Web应用开发中,能够通过PHP...

    flash读取EXCEL示例程序

    对于这样的需求,可能需要考虑使用服务器端的语言(如PHP、Python或Java)来处理Excel文件,然后通过Ajax或其他通信协议与Flash进行数据交换。 7. **FLA源码**:FLA是Flash的源文件格式,包含了所有图形、动画和...

    Flash as3 无需数据库 在线聊天室

    1. **实时通信协议**:Flash AS3可以利用Socket或XMLSocket类实现实时双向通信。通过与服务器建立TCP连接,客户端和服务器之间可以交换数据,实现即时消息传递。 2. **内存数据管理**:聊天信息在服务器端和客户端...

    基于Android开发的学生信息管理系统(as+sqlite)小项目.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...

    intro-to-as400-system-operations

    2. 通信协议:AS/400支持TCP/IP和其他协议,允许与其他系统进行数据交换和远程访问。 六、AS/400应用集成 1. 集成其他系统:通过Web服务、API或中间件(如MQ)与ERP、CRM等现代系统集成。 2. 应用程序部署:安装、...

    基于PHP实现的获取公共 IP 地址 API,调用本 API 将会返回访问用户的公共 IP 地址,建议使用前端 JS调用

    这里我们将深入探讨一个基于PHP实现的获取公共IP地址的API,并结合JavaScript进行前端调用的方法。 首先,我们要理解什么是公共IP地址。公共IP地址是互联网上设备与设备之间通信时使用的唯一标识符,它是由Internet...

    动态路由协议+包含FPM完整编码

    动态路由协议是网络通信中的重要组成部分,特别是在大型网络和互联网中,它负责自动发现网络拓扑,计算最佳路径,并在路由表中更新信息,确保数据包高效、可靠地传输。FPM(FastCGI Process Manager)是PHP的一种...

    AMFPHPTestSource

    这个文件是AS3(ActionScript 3)代码,定义了一个远程连接类,用于与AMFPHP服务器进行通信。它可能包含了建立连接、发送请求和接收响应的方法,是Flash客户端与AMFPHP服务端交互的关键部分。 4. **...

    php--mqtt实现推送

    在IT行业中,实时通信已经成为许多应用程序的核心功能,MQTT(Message Queuing Telemetry Transport)协议就是一种轻量级的发布/订阅式消息传输协议,广泛用于物联网(IoT)设备和低带宽、高延迟或不可靠网络环境。...

    Java与R语言通信总结.pdf

    Rserve是一个C/S架构的程序,允许R语言与其他语言通过TCP/IP协议进行通信,支持多种编程语言,包括Java、C/C++、PHP、Python、Ruby和Node.js。它提供了远程连接、认证以及文件传输功能,使得R语言可以作为一个后台...

    让基于Guzzle的项目完美无缝兼容Swoole协程

    在PHP开发中,Guzzle是一个广泛使用的HTTP客户端库,它允许开发者方便地发送HTTP请求,处理响应,并且支持多种协议和认证方式。然而,当涉及到高性能、低延迟的应用场景时,传统的同步I/O模型(如Guzzle默认使用的)...

    Flex连接数据库的方法

    AMF提供了高效的二进制数据交换格式,而XML/HTTP则基于标准的HTTP协议,适用于跨域通信。 - **数据服务**:这些服务可以是基于Flash Remoting的BlazeDS,或者使用HTTP的LCDS(LiveCycle Data Services)。它们负责...

    flex as资料

    压缩包中的文件“Flex与后台交互的方法(PDF版)+.pdf”显然是一份详细的教程或指南,专注于讲解如何在Flex应用中实现与后端服务器的通信。这通常涉及到网络请求的API,如HTTPService、WebService或AMF(Action ...

    PHP获取http请求的头信息实现步骤

    在PHP编程中,获取HTTP请求头信息...总之,理解如何在PHP中获取HTTP请求头信息是构建动态Web应用的基础,无论是使用内置函数还是自定义方法,都需要对HTTP协议有深入的理解,以便更好地处理客户端与服务器之间的交互。

    flash php 留言板程序源码

    2. 用户填写信息并点击提交,ActionScript收集这些数据并通过XMLSocket或AMF等协议与PHP服务器端进行通信。 3. PHP服务器端接收到数据,可能执行数据验证,防止SQL注入等安全问题。 4. 验证无误后,PHP将数据保存到...

    php基于websocket搭建简易聊天室实践

    WebSocket是一种在客户端与服务器之间实现全双工通信的协议,它允许双方持续保持连接状态,适用于实时性要求较高的应用,如在线聊天室。相较于传统的HTTP短连接(通常使用AJAX实现),WebSocket更加高效且节省资源。...

    php长连接开发.pdf

    本文将通过一个聊天室的例子,逐步介绍PHP实现长连接的方法。 0x00 初步实践 传统的PHP聊天室通常采用轮询(polling)或长轮询(long polling)技术。轮询方式中,客户端定时向服务器发送请求,询问是否有新消息,...

Global site tag (gtag.js) - Google Analytics