Flex扩展HTTPService简化调用接口定义

来源:软件水平考试    发布时间:2012-11-05    软件水平考试视频    评论


  public string UserPWD
  {
  get;
  set;
  }
  [NClay.Web.Service.OutputXml]
  public int LoginID
  {
  get;
  set;
  }
  [NClay.Web.Service.OutputXml]
  public string LoginName
  {
  get;
  set;
  }
  public NClay.Web.Actions.ImageValidate ImageValidate
  {
  get;
  set;
  }
  }
  HttpBase的定义
  该HttpBase是针对本人现有需求所制定的,所以并不一定适合你的需要;但作为一个参考
  public class HttpBase
  {
  private var mService:HTTPService=null
  private var mResult:Function=null;
  private var mFristSearch:Boolean=false;
  public var _TimeSlice:Date;
  public function GetService():HTTPService
  {
  return mService;
  }
  public function HttpBase(api:String,method:String="get",result:Function=null)
  {
  mService = new HTTPService();
  mService.useProxy=false;
  mService.url=GetServiceUrl()+api;
  mService.resultFormat="e4x";
  mService.method=method;
  mService.addEventListener(FaultEvent.FAULT,HFSoftCoreFun.onFault);
  mService.addEventListener(ResultEvent.RESULT,OnResult);
  mResult=result;
  }
  protected virtual function GetServiceUrl():String
  {
  return "service.aspx?do=";
  }
  private function OnResult(event:ResultEvent)
  {
  var data:XML=XML(event.result);
  var iserror:Boolean=HFSoftFx.HFSoftCoreFun.IsError(data);
  if(mResult!=null)
  mResult(data,iserror);
  }
  public function get FirstSearch():Boolean
  {
  return mFristSearch;
  }
  public function Open(firstSearch:Boolean=false)
  {
  _TimeSlice =new Date();
  mFristSearch=firstSearch;
  mService.send(this);
  }
  }代码也非常简单,就是在httpservice的基础上包装一下。其实了解AS的朋友应该可以看得出对于动态语言来说直接把HttpBase定义成动态类,然后直接设置成员提交这样就省下每个交互都定义一个类型出来这么麻烦。但作为一个服务接口调用成员越明确越好,因为程序是要经常修改和维护的;不过是不是要这样做就是团队约束规范问题了。

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答