我有一个场景,需要使用相同的基础URL调用API,例如www.myAPI.com
,但使用不同的baseUrl
。
我有一个通过Builder
构建的Retrofit 2实例:
return new Retrofit.Builder()
.baseUrl(FlavourConstants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(okHttpClient)
.build();
FlavourConstants.BASE_URL
看起来像这样:
public static final String BASE_URL = "http://myApi.development:5000/api/v1/";
对于一些WebRequests
,我必须调用同一个API,但对于另一些WebRequests
,我必须从完全不同的BaseUrl
调用它。在运行时如何更改Retrofit
实例以指向不同的URL?
Retrofit
实例没有.setBaseUrl
或setter
或任何类似的方法,因为它是通过Builder
构建的。
有什么想法吗?
Retrofit
实例有点不可变(这就是构建器的用途)。因此,您需要为要设置的其他URL创建另一个实例。 - asgs