·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

AS3与PHP通信的五种方法(基于HTTP协议)

时间:2012-01-04 09:07blog.csdn.net
AS3与PHP通信的五种方法(基于HTTP协议) ,这是基于HTTP协议的,然后主要是下面的五种方法

首先,这是基于HTTP协议的,然后主要是下面的五种方法。

 

  1. /**  
  2.  * 这是基于HTTP协议的  
  3.  * 一共介绍了五种方法  
  4.  */  
  5.  
  6. package    
  7. {  
  8.     import flash.display.Sprite;  
  9.     import flash.events.*;  
  10.     import flash.net.URLLoader;  
  11.     import flash.net.URLRequest;  
  12.     import flash.net.URLVariables;  
  13.     import flash.net.URLRequestMethod;  
  14.     import flash.net.URLLoaderDataFormat;  
  15.     import flash.net.URLRequestHeader;  
  16.     import flash.utils.ByteArray;  
  17.     /**  
  18.      * ...  
  19.      * @author .....Li灬Star  
  20.      * @contact...QQ:168527720  
  21.      */  
  22.       
  23.     public class ASWithPHP_1 extends Sprite   
  24.     {  
  25.         private var urlLoader:URLLoader;  
  26.         private var phpUrl:URLRequest;  
  27.           
  28.         public function ASWithPHP_1()   
  29.         {  
  30.             init();  
  31.         }  
  32.           
  33.         private function init():void   
  34.         {  
  35.             urlLoader = new URLLoader();  
  36.             phpUrl = new URLRequest("PHP地址");  
  37.               
  38.             /**  
  39.              * 第一种:直接读取PHP里面的数据  
  40.              */  
  41.             //----------------------------------------------------------------------  
  42.             urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;  
  43.             /**  
  44.              * URLLoaderDataFormat.BINARY:String---->指定以原始二进制数据形式接收下载的数据  
  45.              * URLLoaderDataFormat.TEXT:String----> 指定以文本形式接收已下载的数据  
  46.              * URLLoaderDataFormat.VARIABLES:String---->指定以 URL 编码变量形式接收下载的数据   
  47.              */  
  48.             urlLoader.load(phpUrl);  
  49.             urlLoader.addEventListener(Event.COMPLETE, completeHandler1);  
  50.             //-----------------------------------------------------------------------  
  51.               
  52.             /**  
  53.              * 第二种:读取PHP生成的xml   
  54.              */  
  55.             //-------------------------------------------------------------------------  
  56.             urlLoader.load(phpUrl);  
  57.             urlLoader.addEventListener(Event.COMPLETE, completeHandler2);  
  58.             //-------------------------------------------------------------------------  
  59.               
  60.             /**  
  61.              * 第三种:通过GET方法把参数传到PHP里面  
  62.              */  
  63.             //--------------------------------------------------------------------------  
  64.             phpUrl.method = URLRequestMethod.GET;  
  65.             phpUrl.data = "要传出去的数据";  
  66.             urlLoader.load(phpUrl);  
  67.             urlLoader.addEventListener(Event.COMPLETE, completeHandler3);  
  68.             //--------------------------------------------------------------------------  
  69.               
  70.             /**  
  71.              * 第四种:通过POST方法把参数传到PHP里面  
  72.              */  
  73.             //--------------------------------------------------------------------------  
  74.             phpUrl.method = URLRequestMethod.POST;  
  75.             var vars:URLVariables = new URLVariables();  
  76.             vars.value1 = "参数1";  
  77.             vars.value2 = "参数2";  
  78.             phpUrl.data = vars;  
  79.             urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;  
  80.             urlLoader.load(phpUrl);  
  81.             urlLoader.addEventListener(Event.COMPLETE, completeHandler4);  
  82.             //--------------------------------------------------------------------------  
  83.               
  84.             /**  
  85.              * 第五种:二进制通信方法  
  86.              */  
  87.             //----------------------------------------------------------------------------  
  88.             var requestHeader:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");  
  89.             phpUrl.method = URLRequestMethod.POST;  
  90.             phpUrl.requestHeaders.push(requestHeader);  
  91.             var byteArr:ByteArray = new ByteArray();  
  92.             byteArr.writeByte(12);  
  93.             byteArr.writeUTF("CNSloppyMan");  
  94.             var sendData:ByteArray = new ByteArray();  
  95.             sendData.writeInt(byteArr.length);  
  96.             sendData.writeBytes(byteArr);  
  97.             phpUrl.data = sendData;  
  98.             urlLoader.dataFormat = URLLoaderDataFormat.BINARY;  
  99.             urlLoader.load(phpUrl);  
  100.             urlLoader.addEventListener(Event.COMPLETE, completeHandler5);  
  101.             //-----------------------------------------------------------------------------  
  102.         }  
  103.           
  104.         private function completeHandler1(e:Event):void   
  105.         {  
  106.             var vars:URLVariables = URLVariables((e.currentTarget as URLLoader).data);  
  107.             trace("接受数据:" + vars.value); //假定value是PHP里面自定义的节点值  
  108.         }  
  109.           
  110.         private function completeHandler2(e:Event):void {  
  111.             var xml:XML = new XML((e.currentTarget as URLLoader).data);  
  112.             trace("xml数据:" + xml.toString());  
  113.         }  
  114.           
  115.         private function completeHandler3(e:Event):void {  
  116.             trace("GET-已经传出去的数据:" + (e.currentTarget as URLLoader).data);     
  117.         }  
  118.           
  119.         private function completeHandler4(e:Event):void {  
  120.             trace("POST-已经传出去的数据:" + (e.currentTarget as URLLoader).data);    
  121.         }  
  122.           
  123.         private function completeHandler5(e:Event):void {  
  124.             var _byteArr:ByteArray = e.currentTarget.data as ByteArray;  
  125.             trace(_byteArr.readInt()); //14  
  126.             trace(_byteArr.readByte()); //12  
  127.             trace(_byteArr.readUTF()); //CNSloppyMan  
  128.         }  
  129.     }  
  130.  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器