简单的RPC访问方式

  我们希望使用Flex进行对远程进行发送数据 并且返回数据类型,在flex 可以采用httpserver的方式进行对数据的方式,flash则采用URLLoader 的方式进行Http数据传送,并且获取返回的结果。下面是一个简单的RPC的方式,继承了事件分派内型,可以使用发送url编码格式进行传输数据,仅仅需要调用sendMessage并监听两个数据一个是成功一个是失败的情况就可以了,这个简单的封装就完成了。对于一些常用就可以实现到,可以把他作为一个类使用,因为它可以实现重复使用,可以希望实现更多功能则需要更加耐心进行修改和重构了。

 <textarea cols="50" rows="15" name="code" class="c-sharp">package Config { import flash.events.*; import flash.net.*; import mx.rpc.AsyncToken; import mx.rpc.Responder; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.http.HTTPService; public class Connect extends EventDispatcher { // private static var connect:Connect=null; //连接的网址 public static var myurl:String="http://localhost:8080/flash/receive.jsp"; public static var liuyanurl:String="http://localhost:8080/web/Liuyan.jsp"; public static var dailyurl:String="http://localhost:8080/web/Daily.jsp"; public static var msgyurl:String="http://localhost:8080/web/Msg.jsp"; public static var loginurl:String="http://localhost:8080/web/Login.jsp"; public static var regurl:String="http://localhost:8080/web/Reg.jsp"; public static var typeurl:String="http://localhost:8080/web/DailyType.jsp"; public function Connect() { } public function sendMessage(para:URLVariables,myurl:String,type:String="POST",format:String="xml",proxy:Boolean=false):void { //设置发送数据的变量 var server:HTTPService=new HTTPService(); switch(type) { case "POST": server.method="POST"; break; case "GET": server.method="GET"; break; } server.useProxy=proxy; //不启动代理服务 switch(format) { case "xml": server.resultFormat="xml";//设置返回数据的格式为xml case "text": server.resultFormat="text";//设置返回数据的格式为xml break; } server.url=myurl;//指定发送的jsp页面 var responder:mx.rpc.Responder = new mx.rpc.Responder(onSuccess, onFault); var call:AsyncToken =server.send(para);//发送数据 call.addResponder(responder); } private function onSuccess(event:ResultEvent):void { this.dispatchEvent(event); } private function onFault(event:FaultEvent):void { this.dispatchEvent(event); } } } </textarea>

你可能感兴趣的:(xml,jsp,String,function,Flex,import)