Retrofit 2在开发中进行更改多个baseurl

来源:互联网 发布:sql server 2008 sa 编辑:程序博客网 时间:2024/06/16 10:50

多API下的调试,如果每次都改变API然后去重新打包.apk,会比较痛苦,在调试过程中,如果要进行验证API是否成功,可以在运行时改变API达到运行一次验证各API。

/* * Serice生成器 */public class ServiceGenerator {    private static String BASE_URL = "http://api.juheapi.com/";    private static Retrofit.Builder builder =            new Retrofit.Builder()                    .addConverterFactory(GsonConverterFactory.create())                    .baseUrl(BASE_URL);    public static <T> T createServiceFrom(Class<T> serviceClass) {        return builder.build().create(serviceClass);    }}

在上面这个类里面,进行来添加更改baseurl的代码

public static void changeApiBaseUrl(String newApiBaseUrl) {    BASE_URL = newApiBaseUrl;    builder = new Retrofit.Builder()            .addConverterFactory(GsonConverterFactory.create())            .baseUrl(BASE_URL);}

使用方式:

public void getToh(String key, String version, String month, String day, Callback<Toh> callBack) {    mWeChatQuery = ServiceGenerator.createServiceFrom(WeChatQueryService.class);    Call<Toh> call = mWeChatQuery.getToh(key,version,month, day);    call.enqueue(callBack);}public void getWeChatQuery(String key, Callback<WeChatQuery> callback) {    ServiceGenerator.changeApiBaseUrl(ApiAddressPool.API_JUHE_WECHAT);//改变API    mWeChatQuery = ServiceGenerator.createServiceFrom(WeChatQueryService.class);    Call<WeChatQuery> call = mWeChatQuery.getWeChatQuery(key, "", "", "");    call.enqueue(callback);}

打印结果:

I/System.out: http://api.juheapi.com/I/System.out: http://v.juhe.cn/
阅读全文
1 0
原创粉丝点击