`
zhangrui840121
  • 浏览: 5582 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flex与java服务端通信 URLRequest

    博客分类:
  • flex
 
阅读更多
URLRequest类
     记录请求服务端的URL信息, 给URLLoader进行发送操作.

URLVariables类
     保存向服务端请求所需的参数, 一般用于POST方式传输,GET方式传输不需要使用.

URLRequestMethod类
     该类只有两个静态常量值, 一个是POST, 一个是GET, 可以把它当作是一个枚举类型, 用于指定URL请求时使用POST方式或是GET方式.

URLLoader类
     真正与服务端打交道的类, 通过load方法把一个Reuqest发送给服务端, 在load之前必须给该对象添加一个Complete事件的监听器,接收服务器返回的信息. 传输过程中有可能产生IO错误, 有必要时可以为该对象添加IOError监听器.

例子:
   var request: URLRequest = new URLRequest("http://localhost");

   //默认为URLRequestMethod.GET, 若使用GET方式可以不指定
   request.method = URLRequestMethod.POST;

   //创建一个参数变量对象,用于保存所有向服务发送的参数数据, GET方式可以不使用
   var vars: URLVariables = new URLVariables ();
   vars["varName"] = varValue; //把参数键,值对放到vars对象中.
   vars["var2Name"] = var2Value;
   request.data = vars;  //把参数对象放进Request对象中作为参数

   // 通过request对象创建一个loader,
   var loader: URLLoader = new URLLoader(request);

   事件及返回值的处理

   loader.addEventListener( //给loader对象添加完成时的监听器.
   Event.COMPLETE,
   function(e: Event):void  //临时定义一个监听器
    {
     //服务端返回的数据是保存在loader的data里,通过以下语句可以得到
     trace(URLLoader(e.target).data );//在监听器里处理服务端返回的数据
     //complete
    // process the data;
    }
   );

   loader.addEventListener( //IOError监听器
    IOErrorEvent.IO_ERROR,
    //临时监听器,IO错误的处理在该函数中处理
    function(e: IOErrorEvent): void {/* process the err;*/}
   
    loader.load(request);//把request对象发送到服务端.当请求完成,则会自动触发COMPLETE事件。

下面写一个具体的代码示例
<SPAN style="FONT-SIZE: medium"><?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			import mx.utils.URLUtil;
			protected function myFlex_resultHandler(event:ResultEvent):void
			{
				var name:String=event.result as String;
				Alert.show(name);
			}
			
//			protected function btnSend_clickHandler(event:MouseEvent):void
//			{
//				
//				myFlex.sayHello(txtName.text);
//			}

			protected function button1_clickHandler(event:MouseEvent):void
			{
				var v:URLVariables = new URLVariables("name=jacky&age=35&address=HongKong China");  
				/* 
				也可以是这种方式
				var vars: URLVariables = new URLVariables ();
				vars["varName"] = varValue;	//把参数键,值对放到vars对象中.
				vars["var2Name"] = var2Value; 
				*/	
				var r:URLRequest = new URLRequest();  
				r.url = "http://localhost:8080/Flex4BlazeDSWeb/test.do";  
				r.method = URLRequestMethod.POST;  
				r.data = v;  
		
				var l:URLLoader = new URLLoader();  		
				l.load(r);  
					
				l.addEventListener(Event.COMPLETE,txtCompleteHandler); //注册请求完成后 响应获取数据事件方法  
				//labMsg.alpha = 1;  
			}
			
			private function txtCompleteHandler(e:Event):void  
			{  

				var l:URLLoader = URLLoader(e.target);  
				/* URLUtil的stringToObject方法解释
				从字符串返回对象。字符串包含 name=value 对,它们成为返回对象的动态属性。这些属性对由指定的 separator 分隔。该方法可转换数字、布尔值、数组(由“[]”定义)以及子类(由“{}”定义)。默认情况下,%XX 格式的 URL 模式将转换为相应的字符串字符。 
				例如: 
				var s:String = "name=Alex;age=21";
				var o:Object = URLUtil.stringToObject(s, ";", true);		
				返回对象:{ name: "Alex", age: 21 }。
				*/
				//直接获取返回值内容:  URLLoader(e.target).data
				Alert.show(l.data);
				var o:Object = URLUtil.stringToObject(l.data,";",true); //使用URLUtil对将数据进行反序列化以方便使用  
				
				txtName.text = o.name;  
				txtAge.text = o.age;  
				txtAddress.text = o.address;  
				//labMsg.alpha = 0;  
			}  

		]]>
	</fx:Script>
	<fx:Declarations>
		<!--请把不可视的组件元素例如服务的,值对象的放在声明里面  Place non-visual elements (e.g., services, value objects) here 
		<s:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"  />-->
	</fx:Declarations>
	<s:Panel x="77" y="35" width="198" height="231" title="www.accptecg.com flex4">
		<s:TextInput x="47" y="102" id="txtAddress"/>
		<s:TextInput x="47" y="72" id="txtAge"/>
		<s:TextInput x="47" y="37" id="txtName"/>
		<!--<s:Button x="168" y="38" label="发送" id="btnSend" click="btnSend_clickHandler(event)"/>-->
		<s:Button x="47" y="154" label="按钮" click="button1_clickHandler(event)"/>
		<s:Label x="0" y="47" text="Name"/>
		<s:Label x="4" y="81" text="Age" height="13"/>
		<s:Label x="4" y="115" text="Address" height="13"/>
	</s:Panel>
</s:Application>
</SPAN>


转载自
http://javacrazyer.iteye.com/blog/702813
分享到:
评论

相关推荐

    flex通过URL获取request参数

    通过网页地址URL的参数传递。 例如:http://localhost:8080/text.mxml?myName=good&myValue=goods 在mxml里面获取到good同goods

    AS3 中使用 URLRequest 和 URLLoader 与服务器交互

    AS3 中使用 URLRequest 和 URLLoader 与服务器交互AS3 中使用 URLRequest 和 URLLoader 与服务器交互AS3 中使用 URLRequest 和 URLLoader 与服务器交互AS3 中使用 URLRequest 和 URLLoader 与服务器交互AS3 中使用 ...

    AS3中使用URLRequest和URLLoader 与服务器交互

    AS3 中使用 URLRequest 和 URLLoader 与服务器交互

    Flash+Flex+Air移动开发入门经典 pdf

    《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...

    Flex 编程技巧

    Flex 编程小技巧 1. 复制内容到剪贴板 1. System.setClipboard(strContent); 2. 复制一个 ArrayCollection 1. //dummy solution( well, it works ) 2. var bar:ArrayCollection = new ArrayCollection(); 3. for ...

    ActionScript 3.0 与网络通信

    ActionScript 3.0 与网络通信 1. flash.net.*包 2. 在ActionScript 3.0中,使用URLLoader和URLRequest类来加载外部文件。 加载成功的文件可使用特定类来访问数据,具体使用何类,取决于加载数据的数据类型。 1&gt; ...

    Flex 常用实现小功能的语句

    我做flex项目时收集的,与大家共享,共同进步。(如:页面重载: navigateToURL(new URLRequest("javascript:location.reload();"),"_self") 关闭浏览器:navigateToURL(new URLRequest("javascript:window.close()"),...

    android 开发书籍 高清 PDF Developing Android Applications with Flex 4.5

    Use the URLRequest class to open your app in the browser, place calls, and create emails and text messages Load web and video content into your app with StageWebView Publish your app to an Android ...

    Alley:基本的“ URLSessionDataTask”微包装器,用于与HTTP(S)Web服务进行通信,并具有内置的自动请求重试功能

    胡同基本的URLSessionDataTask微包装器,用于与HTTP(S)Web服务进行通信。 它是作为框架构建的,但是它很小,我建议您直接将Alley文件夹直接复制到您的项目中。为什么在大多数情况下,您需要从互联网上获取信息时,...

    CurlDSL:CurlDSL将cURL命令转换为URLRequest对象

    卷曲DSL 2019:copyright:杨卫中又名宗布尔 CurlDSL将cURL命令转换为URLRequest对象。 一旦有了Web API端点的cURL命令示例,Swift软件包就可以帮助您在iOS / macOS / tvOS中更轻松地构建HTTP客户端。 CurlDSL不会将...

    As3访问http和webService的类,HttpRequest

    var Request:URLRequest = new URLRequest(url); Request.method=method; Request.data = vars; trace(vars); loader = new URLLoader(Request); callBack = _returnMethod; loader....

    AS3读取XML

    简单的读取XML:加载部分var myXML:XML = new XML(); var XML_URL:String = "dat.xml";...var myXMLURL:URLRequest = new URLRequest(XML_URL); var myLoader:URLLoader = new URLLoader(myXMLURL);

    经典频谱文件

    import flash.net.URLRequest; import flash.utils.ByteArray; import flash.text.TextField; public class SoundMixer_computeSpectrum extends Sprite { public function SoundMixer_computeSpectrum() { ...

    ios 网络架构

    ios网络层架构 代码很简单, 接口根据参数调用urlStringWithPath:useHttps:通过BaseURL和URLPath拼装出完整的URL, 然后用这个URL和其他参数生成一个URLRequest, 然后调用setCommonRequestHeaderForRequest:设置公用...

    flash as3 加载外部mp3

    //文本提示:动态文本框 ts_txt //"非你莫属.mp3 和fla在同一目录,如果不在同一目录要使用完整的绝对路径。 var s:Sound = new Sound() var req:URLRequest=new URLRequest("非你莫属.mp3")

    Flash结合PHP实现文件上传功能.rar

     upload.fla 文件中第一帧第代码第14行:urlRequest.url = "http://localhost/phpFlash/upload.php";  此路径改为您的本地环境配置路径,注意,路径一定要以http开头。    2.上传目录  upload.php 文件中第...

    PHP利用Flash文件上传图片(附FLA源文件).rar

     upload.fla 文件中第一帧第代码第14行:urlRequest.url = "http://localhost/phpFlash/upload.php";  此路径改为您的本地环境配置路径,注意,路径一定要以http开头。  2.上传目录  upload.php 文件中第二行...

    CS6打开歌词同步频谱播放器源码

    import flash.net.URLRequest; import flash.ui.ContextMenu; import flash.ui.ContextMenuItem; //===============// public class Main extends Sprite { private var xmlLoader:DataLoader; private ...

    flash+js交互部分

    与asp js交互数据实现 ------------------------------ import fl.controls.Button; import fl.core.UIComponent; var TF : TextFormat = new TextFormat(); TF.size = 16; TF.color = 0x0000ff; key.setStyle(...

Global site tag (gtag.js) - Google Analytics