接着上篇开始,通过上篇文章,大家对框架有一个初步的认识和了解。基本了解了该应用宝提供的功能和数据接口都有哪些。可以根据自己的需要去定制和扩展。
今天的这篇文章很简单,主要教会大家如何使用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
随时私信。