基于Flex的HTTPService(GET和POST)

一.基于GET的HTTPService:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">

  <mx:Script>
    <![CDATA[

      import mx.controls.Alert;
      import mx.rpc.events.ResultEvent;


      //对提交给后台的参数进行UTF-8的编码处理
      private function httpEncoding(param:String):String{
        return encodeURIComponent(param);
      }


      private function doRequest():void{
        btn_do.enabled=false;
        var url:String = "http://localhost:1337";
        srv.url = url;

        var params:URLVariables = new URLVariables();
        params.user = "fuland";
        params.psw = "123456";
        srv.send(params);
      }

      private function resultHandler(event:ResultEvent):void{
        Alert.show("与后台交互结束,前台开始取得的数据...","提示信息");
        btn_do.enabled=true;
      }

    ]]>
  </mx:Script>

  <mx:HTTPService id="srv" result="resultHandler(event);"/>


  <mx:Panel title="测试与后台交互" layout="absolute" width="100%" height="90%">
    <mx:Button id="btn_do" label="取得数据" click="doRequest();"/>
    <mx:Spacer height="1"/>
    <mx:DataGrid dataProvider="{srv.lastResult.catalog.product}" width="100%" height="100%" y="28"/>
  </mx:Panel>

</mx:Application>

 

二.基于POST的HTTPService:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">

  <mx:Script>
    <![CDATA[

      import mx.controls.Alert;
      import mx.rpc.events.ResultEvent;
      import flash.display.MovieClip;
      import flash.events.MouseEvent;
      import flash.text.TextField;
      import flash.text.TextFormat;

      private function checkLogin(evt:ResultEvent):void
      {
        var mesh:XML = evt.result as XML;
        var str:String = evt.result.toString();
        Alert.show(str);
      }

      private function sendLogin(e:MouseEvent):void  
      {
        var employees:XML =
          <employees>
            <employee ssn="123-123-1234">
              <name first="John" last="Doe"/>
              <address>
                <street>11 Main St.</street>
                <city>San Francisco</city>
                <state>CA</state>
                <zip>98765</zip>
              </address>
            </employee>
            <employee ssn="789-789-7890">
              <name first="Mary" last="Roe"/>
              <address>
                <street>99 Broad St.</street>
                <city>Newton</city>
                <state>MA</state>
                <zip>01234</zip>
              </address>
            </employee>
        </employees>;

        login_user.contentType='application/xml'; //告诉服务器发送的格式
        login_user.send(employees);
      }

    ]]>
  </mx:Script>

  <mx:HTTPService id="login_user" result="checkLogin(event)" showBusyCursor="true" method="POST" resultFormat="e4x" url="http://127.0.0.1:1337" useProxy="false"/>

  //<mx:HTTPService id="login_user" result="checkLogin(event)" showBusyCursor="true" method="POST" resultFormat="xml" url="http://127.0.0.1:1337" useProxy="false"/>  如果有要在相应中得到XML对象则应该选择e4x,result就是Object类型 传“xml”的时候,用as转换无法成功转成xml,则返回null,但如果用强制转换XML(event.result).就可以成功。

  <mx:Panel resizeEffect="Resize" width="250" height="200" layout="absolute" title="Login System" horizontalCenter="0" verticalCenter="-2" id="panel1">
    <mx:Label x="10" y="10" text="Username:" id="label1"/>
    <mx:TextInput x="10" y="36" id="username"/>
    <mx:Label x="10" y="66" text="Password:" id="label2"/>
    <mx:TextInput x="10" y="92" id="password" displayAsPassword="true"/>
    <mx:Button x="10" y="122" label="Submit" id="Submit" click="sendLogin(event)"/>
  </mx:Panel>
</mx:Application>

 

posted @ 2014-05-27 16:29  腐烂的翅膀  阅读(607)  评论(0编辑  收藏  举报