私のアプリケーションでは、私のアプリケーションのために、ベースインターフェイスで Retrofitを使用しています。私は、改造ページのように、ベースURLを使用しています。 私はインターフェイスの外からbaseUrlを変更できるようにします。 Testingsのための1つのbaseUrlと開発のための1つのbaseUrlを持っていて、ユーザーはそれらを切り替えることができるでしょう。 Javaインターフェイス内のすべての変数は最終的なもので変更することはできません。 インターフェイスでは囲まれたインターフェイスの外部から変数を受け取ることができないため、 どのように変更するのですか?ここretrofitインターフェイスでbaseURLを変更するにはどうすればよいですか?
は私の改造インタフェースです:
String baseUrl = "http://1.1.1.1:1000/";
//network calls
@GET("api/v1/alignment/measuring")
Call<AligmentDataPojo> getCallData();
@GET("api/v1/alignment/best-position")
Call<BestPositionPojo> getBestPositionCallData();
@GET("api/v1/data/resetBoxAligment")
Call<AligmentScanPojo> resetBoxAligmentCallData();
@GET("api/v1/alignment/pointer-location")
Call<CurserLocationPojo> curserLocationCallData();
@GET("api/v1/alignment/fineAlignment")
Call<FineAligmentPojo> fineAligmentCallData();
@GET("api/v1/alignment/get-bands")
Call<GetBandsPojo> getAllBandsCallData();
@POST("api/v1/alignment/set-band")
Call<PojoSetBand> postAligmentSetBand(@Body SetBandAligmentModel setBandAligmentModel);
@POST("api/v1/alignment/action/start")
Call<PojoSetBand> postAligmentAction(@Body AligmentActionPayloadModel aligmentActionPayloadModel);
@GET("api/v1/alignment/evaluation-results") //Just for mockuppurposeses we have unreal information that we send and simulate a return call
Call<EvaluationDataPojo> getEvaluationResults();
@POST("api/v1/alignment/start-evaluation") //Just for mockuppurposeses we have unreal information that we send and simulate a return call
Call<PojoSetBand> startEvaluationPost(@Body AligmentActionPayloadModel aligmentActionPayloadModel);
//testings
@POST("api/v1/data/testPost")
Call<TestPostModel> getTestPost(@Body TestPostModel testPostModel);
//factory
class Factory {
private static RetrofitInterface service;
public static RetrofitInterface getInstance() {
if (service == null) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
service = retrofit.create(RetrofitInterface.class);
return service;
} else {
return service;
}
}
}
1 /他共有環境設定にそれを保存したり、URLを選んで、ベースURL 2 /ためのピッカーを作成... 3 /再インスタンス化改造するため P.S.でアプリを再起動します。あなたは、アプリケーションの再起動のために 'com.jakewharton:process-phoenix:1.0.2'をコンパイルすることができます。 – toshkinl
おそらくこれは関連しています。 http://stackoverflow.com/questions/38805689/retrofit-change-baseurl –
http://stackoverflow.com/questions/36960627/android-retrofit-design-patterns/36963162#36963162これを見て、セッターを作成してくださいベースURL。 – Amir