Android Studio 3.1
这里是我的Retrofit init:
private static Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(BuildConfig.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(httpClient.build());
private static Retrofit retrofit = builder.build();
public static <T> T createRestClient(Class<T> restClientClass) {
retrofit = builder.build();
return retrofit.create(restClientClass);
}
public static Retrofit getRetrofit() {
return retrofit;
}
我在gradle.properties中设置的 API_BASE_URL :
DEBUG_API_BASE_URL=\"http://myhost.com/\"
尼斯。它的工作正常。
但有时候,例如当我运行测试时,我需要更改baseUrl
。
为此,我将文件 gradle.properties 中的 DEBUG_API_BASE_URL 中的生产网址更改为测试网址。
完成测试后,我会在文件 gradle.properties 中返回生产网址。
它的工作。但我认为这不是一个好的解决方案。
是否可以在运行时更改baseUrl
for Retrofit?
答案 0 :(得分:0)
如果您使用的是Android(问题中不清楚),您可以使用不同的buildType。请参阅https://developer.android.com/studio/build/gradle-tips部分“使用您应用的代码共享自定义字段和资源值”
android {
...
buildTypes {
release {
buildConfigField("String", "API_BASE_URL", \"http://www.myhost.com/\")
}
debug {
buildConfigField("String", "API_BASE_URL", \"http://staging.myhost.com/\")
}
}
}