分享自己整理的Android应用开发框架(2)


     接着上篇开始,通过上篇文章,大家对框架有一个初步的认识和了解。基本了解了该应用宝提供的功能和数据接口都有哪些。可以根据自己的需要去定制和扩展。


      今天的这篇文章很简单,主要教会大家如何使用api包的实现去管理自己应用的网络接口请求。


      大家看到api包其实很简单。整个包下面只有一个类BaseApi

 

       

package com.mars.framework.api;


/**
 * 
 * 网络接口基类
 * 
 * @author Mars
 *
 */
public abstract class BaseApi {
    
    protected String baseUrl = "http:\\127.0.0.1";
    
    public BaseApi(){
    	configBaseUrl();
    }
    
    /**
     * 配置接口服务器
     */
    protected abstract void configBaseUrl();
    
    /**
     * 配置服务器Url
     * @return
     */
    protected String getBaseUrl(){
    	return baseUrl;
    }
    
}

   这个类的使用其实很简单,仅需要集成并实现以下configBaseUrl()方法即可。


   以下是我写的一个Demo实现,大家可参考实现:

   

package com.sohu.tv.launcher.api;

import com.sohu.framework.api.BaseApi;
import com.sohu.framework.volley.error.AuthFailureError;
import com.sohu.framework.volley.request.Request;
import com.sohu.framework.volley.request.StringRequest;
import com.sohu.framework.volley.response.Response;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by mars on 15/1/4.
 */
public class DemoRequestApi extends BaseApi {


    private final boolean IS_TEST = false; //配置服务器

    // 接口服务器
    private final String base_url = IS_TEST ? "http://测试服务器地址"
            : "http://线上服务器地址";

    //接口Demo
    private final String DEMO_URL = getBaseUrl() + "/接口名称";

    private static DemoRequestApi instance;

    public static DemoRequestApi getInstance() {
        if (null == instance) {
            instance = new DemoRequestApi();
        }

        return instance;
    }

    public DemoRequestApi() {
        configBaseUrl();
    }

    @Override
    public void configBaseUrl() {
        this.baseUrl = base_url;
    }

    private HashMap<String, String> getCommonParams() {

        HashMap<String, String> commonParams = new HashMap<String, String>();

        //定义自己的通用参数

        return commonParams;
    }

    private HashMap<String, String> getCommonHeaders() {
        HashMap<String, String> commmonHeaders = new HashMap<String, String>();

        //定义自己的头部参数

        return commmonHeaders;
    }

    /**
     * 接口实现举例
     * @param params1 接口需要的参数1
     * @param params2 接口需要的参数2
     * @param listener
     * @param errorListener
     * @return
     */
    public StringRequest requestDemo(String params1,String params2,Response.Listener<String> listener, Response.ErrorListener errorListener) {

        HashMap<String, String> paramsMap = getCommonParams();

        //需要参数
        paramsMap.put("参数1","params1");
        paramsMap.put("参数2","params2");

        StringRequest request = new StringRequest(Request.Method.GET, DEMO_URL, paramsMap, listener, errorListener) {

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                return getCommonHeaders();
            }
        };

        return request;

    }


}

请大家仔细阅读这个Demo类,对以后实现自己的api接口很有帮助的。


如有问题反馈:可通过以下方式联系到我

新浪微博:http://weibo.com/zpf2895  

随时私信。


   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值