Flex与服务器端通信方式(二)HTTPService方式

HTTPService类用于超文本传输协议(HTTP)实现与服务器的通信。Flex应用程序用GET或POST请求将数据发送到服务端,并处理该请求所返回的XML或字符串。使用这个HTTPService类,可以与PHP页,ColdFusion页,JSP页,Java servlet,Ruby on Rails,以及Microsoft ASP页进行通信。

 

1.使用HTTPService进行通信,要创建并配置一个HTTPService组件,使应用程序能够与基于HTTP协议的服务进行通信。

 

HTTPService对象的创建与配置:

 

Java代码   收藏代码
  1. <mx:HTTPService url=" " id=" " fault=" " result=" " method=" " showBusyCursor=" " useProxy=" ">  


2.要把参数传到后台,可以通过两种方法:一个是通过配置HTTPService对象的request属性

如:

 

Java代码   收藏代码
  1. <mx:request xmlns="">  
  2.         <username>{input.text}</username>  
  3. </mx:request>  

 另一个方法是在url后面加参

 

如:

 

Java代码   收藏代码
  1. <mx:HTTPService url=http://localhost:8080/Test/index.jsp?id=1/>  

 

 

 

下面使用一个例子来说明HTTPService与后台进行通信

1. 新建一个web 项目,Test,并将其布暑入Tomcat;

 

 

2. 新建一个Flex项目,HTTPService

 

选择J2EE,并填写正确的地址,测试成功。

3.客户端代码:

 

Java代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns="*">  
  3.     <mx:HTTPService url="http://localhost:8080/Test/index.jsp?id=1" id="service" fault="serviceFault(event)" result="serviceResult(event)" method="POST" showBusyCursor="true" useProxy="false">  
  4.     <mx:request xmlns="">  
  5.         <username>{input.text}</username>  
  6.     </mx:request>  
  7.     </mx:HTTPService>  
  8.   
  9.     <mx:Script>  
  10.         <![CDATA[  
  11.             import mx.rpc.events.FaultEvent;  
  12.             import mx.rpc.events.ResultEvent;  
  13.             import mx.controls.Alert;  
  14.               
  15.             [Bindable]  
  16.             private var requestedId:Number;//要向服务器端传输的数据  
  17.               
  18.             //输出服务返回的结果  
  19.             private function serviceResult(event:Event):void{  
  20.               
  21.                 Alert.show(service.lastResult.users.user.name);  
  22.                   
  23.             }  
  24.               
  25.             //服务器发生故障或超时的事件处理  
  26.             private function serviceFault(event:Event):void{  
  27.               
  28.                 Alert.show("服务发生故障:"+event.toString());  
  29.                   
  30.               
  31.             }  
  32.               
  33.             private function callService():void{  
  34.               
  35.                 //requestedId = input.text as Number;  
  36.                 //Alert.show(input.text);  
  37.                 service.send();  
  38.                   
  39.             }  
  40.               
  41.         ]]>  
  42.     </mx:Script>  
  43.       
  44.     <mx:TextInput id="input"/>  
  45.     <mx:Button label="get user name" click="callService()" y="50"/>  
  46.       
  47.       
  48.     <mx:DataGrid y="100" width="163" dataProvider="{service.lastResult.users.user}">  
  49.         <mx:columns>  
  50.             <mx:DataGridColumn headerText="姓名:" dataField="name"/>  
  51.             <mx:DataGridColumn headerText="年龄" dataField="age"/>  
  52.         </mx:columns>  
  53.     </mx:DataGrid>  
  54. </mx:Application>  

 

 4.服务器端代码:(这里就用JSP)

 

Java代码   收藏代码
  1. <%@ page contentType="text/xml,charset=utf-8"%>  
  2. <%  
  3.   
  4. request.setCharacterEncoding("utf-8");  
  5. String id = request.getParameter("id");   
  6. String username = request.getParameter("username");  
  7. System.out.println(username);  
  8. System.out.println(id);  
  9. out.print("<?xml version='1.0' encoding='utf-8'?><users><user><id>"+id+"</id><name>nishiting</name><age>23</age></user></users>");  
  10. %>  

 

 如果是写在servlet里:

 

Java代码   收藏代码
  1. response.setContentType("text/html");  
  2.         PrintWriter out = response.getWriter();  
  3.         //request.setCharacterEncoding("utf-8");  
  4. String id = request.getParameter("id");   
  5. String username = request.getParameter("username");  
  6. System.out.println(username);  
  7. System.out.println(id);  
  8. out.print("<?xml version='1.0' encoding='utf-8'?><users><user><id>"+id+"</id><name>nishiting</name><age>23</age></user></users>");  

 

 这时客端的请求要指向servlet,即

<mx:HTTPService id="requestServlet" url="./requestServletDemo" useProxy="false" method="POST" showBusyCursor="true">

 使用struts也一样,把url改变就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值