HTTPService的错误处理办法

最正规的Restful HTTPService处理办法是看HTTP response的头部的 状态代码。比如200表示OK,500表示内部服务器错误,404表示找不到对应文件等等。但是Flex的HTTPService并没有提供任何可以读取HTTP response头部的办法,所以,这种正规的办法在目前是行不通的。某人直接就说:Flex can't do REST

当然这样的说法比较极端,因为实际工作中总可以有一些Work around,通过其他途径来解决问题。

因为Flex没有办法读取状态代码,所以在Rails的实现中,默认所有的Action的返回结果都是200(OK)。然后,所有的错误信息,通过 render :xml => @account.errors.to_xml ,作为结果返回。
比如:
xml 代码
 
<?xml version="1.0" encoding="UTF-8"?>   <errors>     <error>Name &#36134;&#25143;&#21517;&#31216;&#19981;&#33021;&#20026;&#31354;</error>   </errors>  
然后,在结果返回函数里面处理。
js 代码
 
//just prototype code   public function onResult(evt:ResultEvent):void   {       if (evt.result.hasOwnProperty("errors"))       {            //error handling       }       else       {           // get right result       }   }  

进一步把错误在Flex中显示出来,可以参考: http://onrails.org/articles/2007/03/06/mapping-rails-errors-to-flex-fields
root@ONEPIECE:~/fisco/webase-deploy# python3 deploy.py installAll ============================================================ _ _ ______ ___ _____ _____ | | | | | ___ \/ _ \/ ___| ___| | | | | ___| |_/ / /_\ \ `--.| |__ | |/\| |/ _ | ___ | _ |`--. | __| \ /\ | __| |_/ | | | /\__/ | |___ \/ \/ \___\____/\_| |_\____/\____/ ============================================================ ============== checking envrionment ============== check git... check finished sucessfully. check openssl... check finished sucessfully. check curl... check finished sucessfully. check wget... check finished sucessfully. check dos2unix... check finished sucessfully. check host free memory and cpu core... check finished sucessfully. check nginx... check finished sucessfully. check java... check finished sucessfully. check WeBASE-Web port... check finished sucessfully. check WeBASE-Node-Manager port... check finished sucessfully. check WeBASE-Sign port... check finished sucessfully. check WeBASE-Front port... check finished sucessfully. check database connection... check finished sucessfully. check database connection... check finished sucessfully. check mgr database user/password... check finished sucessfully. check sign database user/password... check finished sucessfully. check mgr mysql version... node-mgr's mysql version is [5.7.42-0ubuntu0.18.04.1] check finished sucessfully. check sign mysql version... sign's mysql version is [5.7.42-0ubuntu0.18.04.1] check finished sucessfully. check exited chain info... check connection... Exist chain listen ip:127.0.0.1 port:8545 is disconnected, please confirm. root@ONEPIECE:~/fisco/webase-deploy# 解决方法详解
最新发布
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值