Android:网络层的封装(使用volley)

自已的网络请求类(按功能进行分类):
public class UserAPI extends BaseAPI {
    private final String URL_GET_USER_LIST = Contants.BASE_URL + "/";
    private final String URL_GET_USER_DETAIL = Contants.BASE_URL + "/";
    public <T> MatchAPI(Context context, APICallback<T> callback) {        
        super(context, callback);    
   
    /**     
     * 获取用户列表,GET方式     
    */    
    public void getUserList(int apiId) {        
        requestData(apiId, Request.Method.GET, URL_GET_USER_LIST, null);
    }
    /**
     * 获取用户详情,POST方式
     */
    public void getUserDetail(int apiId, long userId) {
      
requestData(apiId, URL_GET_USER_DETAIL, BaseRequest.BODY_TYPE_PROTO, genUserDetailBody(userId));
    }

    private byte[] genUserDetailBody(long userId) {
     
        return null;
    }
    @Override
    protected <T> T parseData(ResponseInfo info) throws Exception {
        switch (info.apiId) {
            case Contants.API_ID_GET_USER_LIST:
                return (T) parseUserList(info.data);
        }
        return null;
    }

    private ArrayList<User> parseUserList(Any data) throws InvalidProtocolBufferException {
    
        ArrayList<User> users = new ArrayList<>();
        if (data != null) {
   
	    //解析网络数据
        }
        return matchGroups;
    }

}

所有网络请求API的父类:
public abstract class BaseAPI implements BaseRequest.RequestCallback {
    protected final int FAILURE = -1;
    protected final int SUCCESS = 0;
    private final String CONTENT_TYPE = "Content-Type";
    private final String TYPE_ENCRYPT = "secure/protobuf";
    protected APICallback callback;
    protected Connector connector;
    protected Context context;

    public BaseAPI(Context context, APICallback callback) {
        this.callback = callback;
        this.context = context.getApplicationContext();
        connector = Connector.getConnector(this.context);
    }

    /**
     * 子类直接调用此方法请求服务器数据
     *
     * @param method 请求方式, GET方式: Request.Method.GET, POST方式: Request.Method.POST
     * @param url    服务器url
     * @param params 请求参数
     */
    protected final void requestData(int apiId, int method, String url, Map<String, String> params) {
        connector.execute(apiId, method, url, getHeaders(), params, this);
    }

    /**
     * 子类直接调用此方法请求服务器数据
     *
     * @param bodyType 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值