Je crée un nouveau projet MVP, et utilise Dagger 2 avec Retrofit, mais je suis confronté à ce problème où l'application est censée obtenir l'URL de base du serveur et commencer à appeler les API réseau .Dagger 2 Mettre à jour l'URL de base dans Retrofit
Le problème ici est que je ne pouvais pas mettre à jour l'URL lors de l'exécution! La meilleure solution que j'ai trouvé était de mettre à jour l'URL, mais au prochain lancement de l'application!
J'ai essayé beaucoup d'idées et de solutions qui existaient sur StackOverFlow mais aucune n'a fonctionné!
private final Application mApplication;
private String mBaseUrl;
public ApplicationModule(Application application, String baseUrl) {
mApplication = application;
mBaseUrl = baseUrl;
}
@Provides
@Singleton
OkHttpClient providesOkHttpClient() {
OkHttpClient.Builder client = new OkHttpClient.Builder();
client.readTimeout(Constants.TIMEOUT, TimeUnit.SECONDS);
client.connectTimeout(Constants.TIMEOUT, TimeUnit.SECONDS);
return client.build();
}
@Provides
@RetrofitGSON
Retrofit providesRetrofit(OkHttpClient okHttpClient) {
return new Retrofit.Builder()
.baseUrl(mBaseUrl)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(new GsonBuilder()
.setPrettyPrinting()
.create()
)
)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(okHttpClient)
.build();
}
Toute aide serait vraiment appréciée!