I have a scenario where I have to call an API with the same base URL, e.g. www.myAPI.com
but with a different baseUrl
.
I have an instance of Retrofit 2 which is built via a Builder
:
return new Retrofit.Builder() .baseUrl(FlavourConstants.BASE_URL) .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build();
The FlavourConstants.BASE_URL
looks like this:
public static final String BASE_URL = "http://myApi.development:5000/api/v1/";
For some WebRequests
, I must call the same API but on others, I must call it from a completely different BaseUrl
. How do I change the Retrofit
instance to therefore point to a different URL during runtime?
The Retrofit
instance doesn't have a .setBaseUrl
or setter
or anything similar as it's built via a Builder
.
Any ideas?
Lucky for you Retrofit have a simple solution for that:
public interface UserManager { @GET public Call<ResponseBody> userName(@Url String url); }
The url
String should specify the full Url you wish to use.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With