`

Flex的通信方式(五)——HTTPService_3

阅读更多
转载自:http://hi.baidu.com/artgou/blog/item/0137ea993a4016006e068c3a.html

本文针对Flex的HTTPService的contentType的设置的两种通信数据格式进行介绍。



[HTTPService部分知识]
1、HTTPService的contentType属性,有"application/xml”和"application/x-www-form-urlencoded”两个可取值。在不进行设置的情况下,默认值为"application/x-www-form-urlencoded”。

2、HTTPService的method属性,有"POST"和"GET"两个可取值。在不进行设置的情况下,默认值为"GET"。


下面用两个例子进行介绍说明:


[例子_1]
HTTPService的contentType属性,取默认值"application/x-www-form-urlencoded”通信数据格式。

1、通讯的对象HTTPService的配置
	<mx:HTTPService showBusyCursor="true"
					id="getuser"
					result="getuserproc();"
					invoke="senduserproc(event);"
					method="post"
					url="http://localhost/Second.aspx"
					fault="onFault(event);">
		<mx:request>
			<username>
   				{this.txtUserName.text}
			</username>
			<userpassword>
   				{this.txtUserPassWord.text}
			</userpassword>
		</mx:request>
	</mx:HTTPService>


2、回传结果处理函数:
	public function getuserproc():void
	{  
		var returnValue:String=getuser.lastResult.Result.chu888;
		
		if(returnValue=="ok")
		{
			Alert.show("您成功的登录了","提示信息",Alert.OK,this,null,null,Alert.YES);
		}
		else
		{
			Alert.show("您的登录失败了","提示信息",Alert.OK,this,null,null,Alert.YES);
		}
	}


3、参数说明:
url:指向提交地址
result\fault\invoke是3个事件,分别结果返回处理事件、错误返回处理事件、提交处理事件
method:http提交的方式
contentType默认:application/x-www-form-urlencoded
resultFormat默认:object
<mx:request>是提交的数据集合,可以参看flex的帮助。

4、发送的数据
准备向服务器请求提交,
那它触发后,发送数据格式:Object of name-value pairs。
比如:
body = (Object)#1
    username = "s"
    userpassword = "s"


5、服务器处理方法和返回的数据格式
服务器端的处理很简单:就是用Request.Params就能接收到;
比如:
Request.Params["username"],如上面的,接收值=s

返回给客户端的数据采用xml格式,直接Response.Write:
<Result>
<ErrorCode>{0}</ErrorCode>
<Description>{0}</Description>
</Result>





[例子_2]
HTTPService的contentType属性,取默认值"application/xml”通信数据格式。

1、通讯的对象HTTPService的配置
<mx:HTTPService id="xmlRequest"
					showBusyCursor="true"
					method="post"
					contentType="application/xml"
					url="http://218.200.200.176/Third.aspx"
					resultFormat="xml"
					result="xmlRequestproc();"
					invoke="senduserproc(event);"
					fault="onFault(event);">
		<mx:request xmlns="">
			<username>
    			{this.txtUserName.text}
   			</username>
			<userpassword>
    			{this.txtUserPassWord.text}
   			</userpassword>
		</mx:request>
	</mx:HTTPService>


2、回传结果处理函数:
	public function xmlRequestproc():void
	{ 
		this.txtResultData.text += this.xmlRequest.lastResult; 
	}


3、重点参数说明:
contentType:application/xml
resultFormat:xml

4、发送的数据
开始通讯,发送数据是xml文档,如下格式:
body = "<username>f</username><userpassword>f</userpassword>"

5、服务器处理方法和返回的数据格式
服务器端的处理,要使用Request.InputStream,并使用XmlDocument来解析
如下:
XmlDocument doc = new XmlDocument();

	Stream str = Request.InputStream;
	int len = (int)str.Length;
	StringBuilder sb = new StringBuilder();

	Byte[] strArr = new Byte[len];
	int strRead = str.Read(strArr,0,len);

	for(int counter=0; counter < len; counter++)
	{
		sb.Append((char)strArr[counter]);
	}

	if (sb.Length > 0)
	{
		doc.LoadXml("<Request>"+sb.ToString()+"</Request>");
		XmlNode root = doc.FirstChild;
		if (root.HasChildNodes)
		{
    		for (int i=0; i<root.ChildNodes.Count; i++)
    		{
    			switch(i)
    			{
       				case 0:
        				username = (root.ChildNodes[i].InnerText);
        				file.WriteLine("U" + username);
        				break;
       				case 1:
        				password = (root.ChildNodes[i].InnerText);
        				file.WriteLine("P" + password);
        				break;
       				default:
        				break;
    			}
    		}
		}
	}


最后输出也是xml结构。



[总结]
contentType的设置,要根据实际的应用
服务器端处理是要根据contentType来处理
返回的数据最好是xml格式的数据,方便转换
分享到:
评论

相关推荐

    Flex的通信方式(三)——HTTPService_1

    在Flex中,与服务器进行数据交互是应用的重要部分,而HTTPService是Flex提供的一种用于与HTTP服务器进行通信的组件。本篇文章将详细探讨Flex中的HTTPService,以及如何通过HTTPService来实现数据的发送和接收。 ...

    Flex 第一步 Chapter_2

    3. **Flex SDK和MXML**:MXML是Flex的标记语言,它允许开发者以声明式方式创建用户界面。Chapter_2可能会介绍MXML的基本元素,如组件(Component)、属性和事件处理函数。 4. **Flex组件库**:Flex提供了大量的预定...

    Flex案例代码,Flex案例代码

    5. **服务调用**:Flex可以轻松地与后端服务器进行通信,如通过HTTPService或WebService调用远程API,获取或提交数据。 6. **事件驱动编程**:Flex应用是事件驱动的,用户操作或其他系统事件会触发相应的事件处理器...

    Flex从入门到实践——源代码(10章)

    3. **组件库**:Flex提供了丰富的组件库,如Button、TextInput、List等。学习如何在界面上添加、布局和定制这些组件,源代码将涵盖这些内容,让你理解组件的属性和方法。 4. **数据绑定**:Flex支持双向数据绑定,...

    3DGame.rar_flex_跳棋

    本篇文章将深入探讨如何利用Adobe Flex这一强大的开发工具,创建一个具有三维视觉效果的跳棋游戏——"3DGame"。 Flex是一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。它的出现极大地...

    Flex从入门到实践_1

    Flex SDK包含了编译器、IDE集成、组件库以及运行时环境——Flash Player或Adobe AIR。Flex的应用程序通常以SWF格式运行在浏览器中,为用户提供交互性强、视觉效果丰富的体验。 2. **ActionScript基础** ...

    Flex从入门到实践——源代码(15,16,17章)

    - 这一章可能涵盖了如何使用Flex与服务器进行通信,包括AMF(Action Message Format)和WebServices。 - BlazeDS或LiveCycle Data Services是Adobe提供的中间件,用于在Flex应用和Java或.NET后端之间传输数据。 -...

    Java和Flex通过Blaze 通信

    在这样的背景下,BlazeDS应运而生,它作为中间件,提供了Java和Flex之间的数据通信解决方案。 BlazeDS是Adobe公司发布的一个开源项目,它的主要功能是为Java服务器和Flex客户端提供实时的双向通信。通过使用BlazeDS...

    ASP.NET源码——[图片动画]flex图片上传带预览功能.zip

    这个压缩包“ASP.NET源码——[图片动画]flex图片上传带预览功能.zip”显然是一个用于展示如何在ASP.NET环境中实现图片上传并带有预览功能的示例代码。 Flex是Adobe公司推出的一种用于创建富互联网应用(RIA)的开发...

    ColdFusion Flex intergeration demo 1

    《ColdFusion与Flex集成应用探索——以"ColdFusion Flex intergeration demo 1"为例》 在当今的Web开发领域,ColdFusion和Flex是两种强大的技术,它们分别在服务器端和客户端展现出了各自的优势。ColdFusion,由...

    flex4组建以及DEMO实例.安装序列号

    Spark组件基于Flex4的图形渲染引擎——Gumbo,允许开发者自定义组件外观和行为,提供了更丰富的UI设计可能性。例如,Button、Label、Accordion、TabNavigator等都是常用的Spark组件,它们可以通过MXML或ActionScript...

    FLEX通过JSP与数据库交互

    为了解决FLEX无法直接与数据库通信的问题,可以采用以下方法:通过HTTPService组件向JSP页面发送请求,由JSP页面处理这些请求并与数据库进行交互。这种方法不仅解决了跨平台问题,还能够利用Java强大的后端处理能力...

    flex 教程 flex 自学完成手册

    7. **服务调用**:Flex可以方便地与后端服务器通信,如使用HTTPService、WebService或AMF服务来获取或提交数据。理解XML、JSON数据格式的处理和序列化。 8. **图形和动画**:Flex支持基本的绘图和动画功能,你可以...

    Flex 3 RIA开发详解与精深实践

    《Flex 3 RIA开发详解与精深实践——企业级Web应用与AIR桌面应用》一书深入探讨了Flex 3在实际项目中的应用,涵盖了从基础到高级的各种技术,包括组件设计、数据绑定、服务集成、动画效果以及Adobe AIR的桌面应用...

    SAP Web Dynpro Java集成FLEX应用分析.pdf

    Flex的整体架构包括一个开发IDE——FlexBuilder,它有自己的类库框架(Flex Framework)、组件(Components)以及用于服务器通信的中间件(LiveCycle Data Services ES)。Flex应用由MXML、ActionScript和Flex Class ...

    flex学习的资料文档

    在Flex中,事件是组件间通信的主要方式。事件包括用户交互事件(如click、focusIn)、数据改变事件(如dataChange)等。通过添加事件监听器,你可以编写处理这些事件的函数。例如,为Button组件添加点击事件监听器,...

    flex + ssh框架 结合例子

    在Flex中,通过HTTPService或WebService调用这些接口,实现客户端与服务端的通信。Spring的AOP特性可以用来处理事务管理和其他跨切面关注点。 3. **Struts集成**:Struts通常用于处理HTTP请求和响应,提供...

    Flex+java+mySQL(blazds链接方法)

    3. **数据通道**:BlazDS提供了两种主要的数据通道——Remoting和Messaging。Remoting通道用于调用Java方法,实现远程过程调用(RPC)。Messaging通道则支持AMF(Action Message Format)消息的发送和接收,适合实时...

    Flex的LCDS服务器架构

    LCDS客户端架构包含了几个关键的Flex组件,如RemoteObject、HTTPService、WebService、Producer、Consumer和DataService。其中,RemoteObject、Producer和Consumer是在Flex SDK的rpc.swc组件库中,而DataService则在...

Global site tag (gtag.js) - Google Analytics