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

我在学习Retrofit的时候,有这样一个需求,就是Retrofit 可以存放或者更改多个baseurl(就是不要把baseurl定死),而且多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);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Retrofit是一个用于构建网络请求的开源库,通常用于Android开发。在某些情况下,我们需要访问不止一个基本URL来获取数据或访问不同的API。 对于这种情况,Retrofit提供了多种解决方案来支持多个base URL。以下是其一种实现方式: 首先,我们需要为每个base URL创建一个单独的Retrofit实例。然后可以为每个实例分别设置自定义的OkHttpClient和Converter工厂。 在创建Retrofit实例时,我们可以通过`Retrofit.Builder()`来设置各种属性,例如OkHttpClient、Converter工厂等。我们可以为每个base URL创建一个Retrofit实例,并为每个实例设置不同的配置。 接下来,我们需要为每个base URL创建一个对应的API接口。可以通过在不同的Retrofit实例上调用`create()`方法来创建这些API接口。每个base URL都对应着其相应的Retrofit实例,这样每个实例都会将请求发送到正确的base URL。 最后,我们就可以使用相应的API接口来发送请求和获取数据了。根据需要选择不同的API接口即可,每个接口对应着不同的base URL。 这样,通过创建多个Retrofit实例并为每个实例设置不同的base URL,我们就可以在一个应用访问多个不同的API。 总结起来,retrofitbaseurl的实现方式是通过为每个base URL创建一个独立的Retrofit实例,并为每个实例设置不同的配置,然后使用相应的API接口来发送请求和获取数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值