美文网首页
android http网络请求

android http网络请求

作者: flyman_namylf | 来源:发表于2017-05-25 00:01 被阅读0次
    对android 中网络请求的分层改造

    目的:做到业务数据相分离
    1、http的请求层(数据通信层)

    主要功能是对web服务器的请求,包括一些Http Request和Http Response的解析和修改,并且提供调试工具类,方便打印对应请求的Request和返回到Response。

    伪代码:

    //BaseDispatch 在中间适配伪代码定义
    //dispath方法会有一个K类型来定义唯一,以便调用之后方便业务层进行接收
    public class HttpRequestManager{
        ....
        单例
        ....
        private BaseDispatch mBaseDispatch;
        //url:请求url
        public void request(String url,Map<String,Object> params,K id){
          T<HttpResponse> response = [http]请求(url,params);
          if(mBaseDispatch != null){
                mBaseDispatch.dispatch(response,id);
          }
        }
        //设置中间层适配
        public void setDispatch(BaseDispatch dispatch){
            mDispatch = dispatch;
        }
    }
    

    2、http中间适配层

    因为对于不同需求返回的数据结果并不相同,可以用json、xml、二进制字节流等。所以需要进行对于的适配。

    伪代码:

    public interface BaseDispatch{
        void dispatch(T<HttpResponse> response,K id);
    }
    .....
    例如
    public class JSonDispatch implements BaseDispatch{
        public void  dispatch(T<HttpResponse> response,K id){
            String json = response.getResponse();
            //发送事件广播出去,业务层可以注册事件来接收事件广播
            sendEvent(json,id);
        }
    }
    .....
    

    3、http业务层
    注册接收事件的广播来处理对应的http请求
    4、需要注意
    -K 的设计要保证唯一,在同一个事件源发出同样到请求可用累加计数处理
    -sendEvent必须保证能及时发出去,否则阻塞回造成整个请求卡死
    -业务层在退出业务时候,需要取消注册的事件处理器。

    相关文章

      网友评论

          本文标题:android http网络请求

          本文链接:https://www.haomeiwen.com/subject/rbcaxxtx.html