zoukankan      html  css  js  c++  java
  • AS3与PHP通信的五种方法(基于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      * 
     20      * 
     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 
    131 }
  • 相关阅读:
    CF1324F Maximum White Subtree(树形dp)
    定时任务集群部署
    zookeeper服务的注册与发现
    多个定时任务服务注册到zookeeper临时顺序节点配置
    nginx反向代理
    nginx反向代理、负载均衡
    Eclipse快捷键
    下拉列表中复选框多选
    Zookeeper节点查看工具
    git打tag
  • 原文地址:https://www.cnblogs.com/bulolo/p/2776309.html
Copyright © 2011-2022 走看看