当前位置:Gxlcms > PHP教程 > AS3与PHP通信的五种方法(基于HTTP协议)_PHP教程

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

时间:2021-07-01 10:21:17 帮助过:23人阅读

首先,这是基于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 .....Li灬Star

* @contact...QQ:168527720

*/

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里面 www.2cto.com

*/

//--------------------------------------------------------------------------

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

}

}

}

摘自 黎岷鑫的专栏

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478494.htmlTechArticle首先,这是基于HTTP协议的,然后主要是下面的五种方法。 /** * 这是基于HTTP协议的 * 一共介绍了五种方法 */ package { import flash.display.Sprite;...

人气教程排行