`
bjlishigui
  • 浏览: 27206 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTPService用法汇总

    博客分类:
  • flex
阅读更多
  近期一直在用HTTPService,花点时间总结了下,为自己做个备忘。
 
  本总结围绕以下几个方面进行总结:

   1,这是什么组件  2,这个组件有什么作用  3,组件有什么属性  4,什么情况下能使用该组件,以及使用实例  5,其他说明

  一,这是什么组件

   简而言之,就是获取数据的组件。

  二,作用如下

   读取远程xml文件数据

   读取远程servlet数据

   它对指定的URL发送请求,并且返回http响应,它可以向http传递参数,注意,这点很重要,很好用

   这个组件不但可以请求数据,还可以提交数据。

   另外再说两点:

    1,如果没有使用基于服务器的代理服务,则只能使用 HTTP GET 或 POST 方法。
    2,如果使用基于服务器的代理服务,则还可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。

    第一点我们比较熟,第二点本人也没有用过。


  三,组件属性

    首先务必记住一点,那就是必须调用了send方法,才会去请求数据。

    1,method : 发送请求的 HTTP 方法。指post,get,delete,trace等方法。

    2,resultFormat : 专业的说是如何反序列化由 HTTP 调用返回的结果的值,说白了就是返回结构格式化,是文本形式的还是xml形式(E4X),后面我回单独些一个博文说明E4x标准,很好用。

    3,url : 这个不用说,就是请求的url地址。

    4,request : URL 参数。这个很好用的。他是一个Object对象。

    方法:

    1,send  这个请求数据必须的方法

    事件:

    1,result:成功返回时调用

    2,fault:失败返回时调用


    其他属性如:useProxy,rootURL是何用途,暂时就先不说了,参照api



  四,用法举例,把碰到过用到该组件的情况归纳如下

   第一种情况,读取远程的xml文件数据,实例如下:

   实例一,先写个简单的

   功能:请求一个xml,请求返回指定元素的个数!

   说明:为了测试,用我以前网上找到的在线xml文件,链接如下:

   http://www.flexgrocer.com/units.xml


   <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="MyHTTPService.send()">

<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.collections.ArrayCollection;

[Bindable]
private var xmls:ArrayCollection=new ArrayCollection();

private function myHTTPService(event:ResultEvent):void
{
xmls=event.result.allUnits.unit;
Alert.show(xmls.length.toString());
}

]]>
</mx:Script>

<mx:HTTPService id="MyHTTPService"
url="http://www.flexgrocer.com/units.xml"
result="myHTTPService(event)"/>

</mx:Application>



   第二种情况,读取远程数据,通过servlet

  实例二

  功能:向一个jsp请求数据,请求数据的同时附带参数

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<mx:Script>
  <![CDATA[
   import mx.rpc.events.FaultEvent;
   import mx.rpc.events.ResultEvent;
   import mx.controls.Alert;
  
   //发送出错时的处理函数
   public function faultHander(event:FaultEvent):void
   {
    Alert.show("发送或者接收时出现问题!");
   }
  
   //接收到结果后处理的函数
   public function resultHandler(event:ResultEvent):void
   {
    Alert.show("您接收到JSP网页传来的结果是:" + event.result.toString());
   }
  
   public function onSend():void
   {
     myhttpService.url = "http://localhost:8080/httpService/index.jsp?message=";
     myhttpService.url += message.text;
     myhttpService.send();
   }
  
  ]]>
</mx:Script>
<mx:HTTPService id="myhttpService"  useProxy="false"  resultFormat="text"   fault="faultHander(event)" result="resultHandler(event)"/>
<mx:Label text="发送信息:" color="#C9E412" fontWeight="bold" fontSize="16" x="136" y="53"/>
<mx:TextInput x="225" y="57"  id="message" width="363"/>
<mx:Button label="发送http请求" x="336" y="107" id="buttonbtn" width="111" color="#F1B809"  click="onSend();"/>

</mx:Application>


  web端,建立index.jsp文件

  <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

  <body>
    <%="Hello," + request.getParameter("message") %>
  </body>
</html>






  实例三

  上面的例子已经说明了提交数据的情况,即提交参数,下面再举一个例子,用的request方式。此例子是网站抄来的,请看:

  <mx:HTTPService id="userRequest" url="http://localhost/flex.php" useProxy="false" method="POST"> 
<mx:request xmlns="">  
<username>{username.text}</username>
<password>{pass.text}</password> 
</mx:request>
</mx:HTTPService>
<mx:Form x="22" y="10" width="356"> 
<mx:HBox>  
<mx:Label text="Username"/>  
<mx:TextInput id="username"/> 
</mx:HBox> 
<mx:HBox>  
<mx:Label text="PassWord"/>  
<mx:TextInput id="pass"/> 
</mx:HBox> 
<mx:Button label="Submit" click="userRequest.send()"/>
</mx:Form>


  这种提交和前面一种例子的提交,结果一样,方式不同而已。




  
  

  
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics