android使用接口与服务器交互简述

客户端与服务台交互过程(登录为例):首先,客户端创建一个服务类的方法对象,传递过去两个值(username、password),然后执行相应的方法,并以getReault()方式进行json传值,其中会传递三个值(接口地址,接口名称,map),然后传递到getResult()方法里面去,进行执行exectue(url,method,parameter);到达exectue()方法里面去,同样带 有三个参数,继续执行:调用服务器接口NewDoNetUtil.exectue(url,method,parameter);到达服务器接口类execute();进行执行操作,返回SoapObject requests对象(返回值都是由status,Data)两个值(一个是返回码,另一个是boolean判断),然后原路传递给上一层,直到exectue()的时候(status值会与本地定义的返回码进行校验,不成功直接抛出异常)进行条件判断。当然,假如服务器返回的状态码与本地的成功码刚好相同,并且Data值也是完全符合条件的话,这个值将直接返回到页面进行下一步操作;反之,如果Data值不符合成功条件,并且status的状态码直接与异常码匹配成功的话,将抛出相应的异常到上一层,直至到页面,然后进行统一处理。

异常是在服务器接口类NewDoNetUtil.exectue(url,method,parameter);执行方法中,如果根本无法找到服务器的地址,然后直接往上抛出一个异常,这个异常就会明确的告诉我们,命名空间异常或者是连接超时。当然,还有一种情况就是没有在AndroidManifest.xml中添加网络权限,导致项目无法与服务器连接。否则,其他的异常可能都是在客户端与服务器交互过程中产生的异常,也会直接抛出,我们都定义一直往上面一层抛出,直到页面为止的时候再来进行全部处理。

处理异常的方法:首先,我们定义一个自定义的异常类(如下),然后在指定需要抛出异常的地方进行try{}catch(IOException e)throw new LbsException(errorCode);在方法参数后面加上:throws LbsException:表示该异常抛到上一层去。

/**

 * 自定义异常

 * @author lj029

 *

 */

public class LbsException extends Exception

{

    /**

     * 注释内容

     */

    private static final long serialVersionUID = -6555356073842721747L;

   

    //错误码

    private int errCode;

   

    public LbsException(int errorCode)

    {

        errCode = errorCode;

    }

   

    public void setErrCode(int errCode)

    {

        this.errCode = errCode;

    }

   

    public int getErrCode()

    {

        return errCode;

    }

   

    @Override

    public String toString()

    {

        return "errCode: " + errCode + super.toString();

    }

   

    /**

     * 获取异常信息

     * @param ctx

     * @return [参数说明]

     * @return String [返回类型说明]

     * @exception throws [违例类型] [违例说明]

     * @see [类、类#方法、类#成员]

     */

    public String getErrorMessage(Context ctx)

    {

        if (null == ctx)

        {

            return null;

        }

        return ServerConstant.ReturnCode.getMsgByReturnCode(errCode, ctx);

    }

}

转载于:https://www.cnblogs.com/xiaorongjun/archive/2012/06/14/2549043.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值