flex 访问webservice

本文介绍了一种使用Flex语言访问WebService的方法,提供了详细的代码示例。包括如何设置WebService地址、调用函数名及参数,并展示了如何处理返回的结果及可能出现的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

flex可以访问webservice,与服务器进行交付。以下是flex端的代码。

 

package com
{
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import flash.events.IEventDispatcher;
 
 import mx.rpc.events.FaultEvent;
 import mx.rpc.events.ResultEvent;
 
 import mx.rpc.AbstractOperation;
 import mx.rpc.soap.WebService;
 import mx.controls.Alert;
 

 public class ServiceAccess extends EventDispatcher
 {
  private var ws:WebService;      //webservice.
  public var _op:AbstractOperation;//抽象操作
  private var _msg:String;         //错误信息
  private var result:XMLList;      //不管是什么结果,都必须返回XMLLIST 
  private var urlwebservie:String; //webservice地址
  private var _opargs:Array;       //参数。
  private var _opname:String;      //调用的函数名。
  
  /**
   * 调用的函数名称
   * @param value  
   *
   */
  public  function set OpName(value:String):void
  {
    _opname=value; 
  }  
  /**
   * 参数集。
   * @param value
   *
   */
  public function set OpArgs(value:Array):void
  {
     _opargs=value; 
  }
  
  public function set UrlWerbservice(value:String):void
  {
      urlwebservie=value; 
  } 
     /**
      *
      * @return  通过webservice  返回的结果集。
      *
      */
     public function get Result():XMLList
  {
     return  result;
  }
  
  public function ServiceAccess(target:IEventDispatcher=null)
  {
   super(target);
   
  } 
  /*************************
   * 获取webservice
   * */
  public function getWebservice():void
  {   if(ws==null)
             { 
                ws=new WebService();
                ws.loadWSDL(urlwebservie);
             } 
  }
  
  /**
   *获取结果。
   *
   */
  public function GetResult():void
  {
       getWebservice();
    _op=new AbstractOperation();
    _op = ws.getOperation(_opname);
    _op.arguments=_opargs;
    _op.addEventListener(ResultEvent.RESULT,getResult);
       _op.addEventListener(FaultEvent.FAULT, getFault);
    _op.send();    
  }
  //从webvice 中获取值。
    private function getResult(evt:ResultEvent):void
  {
    var xml:XML;
    var xmlString:String;
       xml=new XML(evt.result);
       xmlString=xml;
       result=new XMLList(xmlString);
       var e:Event=new Event(Event.COMPLETE);
       this.dispatchEvent(e);
       _op.removeEventListener(ResultEvent.RESULT,getResult);
  }
     //捕捉错误处理函数。
    private function getFault(evt:FaultEvent):void
  {
      _msg=evt.fault.faultDetail;
   Alert.show(_msg);
         //监听之后删除,避免重复监听
         _op.removeEventListener(FaultEvent.FAULT, getFault);
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值