使用Flex中HttpService的应用开发(三)

在请求信息中对象转换为所需对象。

 

使用带有从HttpService请求接受到的数据的值对象

 

/**
   * 远程请求的处理
   *
   */
  private function resultHandler(event:ResultEvent,token:AsyncToken):void
  {
    myData=event.result.data.book;
    //声明一个临时的存储对象Contact
    var obj:Contact;
    for(var i:int=0;i<myData.length;i++)
    {
      //转换为对象
       obj=new Contact(myData.getItemAt(i));
       //存储对象
       myData.setItemAt(obj,i);
    }
  }

 

 

向服务器页面发送参数:

在HttpService中发送参数的两种形式:

1. 打包Actionscript Object 中已命名参数

2。在HttpService对象声明中设置绑定的参数

 

private function getData()
  {
      contactService.url="data/books.xml" ;
      var responder:ItemResponder=new ItemResponder(resultHandler,faultResultHandler);
     
      var  params:Object=new Object();
      params.firstname="san";
      params.lastname="zhang";

     //发送对象(注意此处Object动态类,可以动态的添加属性)
      var token:AsyncToken=contactService.send(params);
      token.addResponder(responder);
  }

 

 

上面代码可以更改为:

//JSON格式

 

contactService.send({firstname:"san",lastname:"zhang"});

 

其实在HTTP处理中无论是Post还是GET发送最终传输过程均为查询字符串格式

 

 

在页面绑定控件使用如下:


 <mx:HTTPService id="contactService" url="http://localhost:8080/unutrip/mm.jsp" result="resultHandler(event)">
  <mx:request >
   <firstname>
   ${txtfirstname.text}
   </firstname>
   <lastname>
   ${txtlastname.text} 
   </lastname>
  </mx:request>
 </mx:HTTPService>

 

 

 在处理跨域策略问题中:所有向远程域发送的HTTP请求都需要跨域许可,其中包括使用HTTPService组件尝试检索的内容。

 

跨策略的文件是一个xml命名为:crossdomain.xml 并放置在远程域的web根目录中,在运行时。

格式如下:

<cross-domain-policy>
<cross-access-from domain="xx.com"/>
<cross-access-from domain="xx.mm"/>
</cross-domain-policy>

 

你可能感兴趣的:(应用服务器,json,xml,Flex,actionscript)