2016-01-20 38 views
8

改造アダプタでは、すべての自分の呼び出しにベースURLを使用しています。だから:Android Retrofit - baseUrlをオーバーライドする方法

上記のコードは私のすべての呼び出しは、そのbaseUrlを使用しています。しかし、特定の1つの呼び出しでは、私はベースURLを変更したい、私はこれのための別の残りのアダプタを作成したくないだけでローカルにテストします。私はおそらくbaseurlを使用しないようにインターフェイスのエンドポイントを変更することができますか、または独自のベースURLを提供する注釈はありますか?

答えて

19

@Urlアノテーションを使用すると、完全な完全なURLを提供できます。例えば。

@GET 
Call<GitHubUser> getUser(@Url String url); 
+0

私は 'com.squareup.retrofit:retrofit:1.8.0'を使用しています。これは動作しますか、今はその注釈を見つけることができません。私はdocsでそれを見ていない:http://static.javadoc.io/com.squareup.retrofit/retrofit/1.8.0/index.html?retrofit/http/package-tree.html – j2emanue

+1

いいえ、それはありません。私はそれが改造2で追加されたと思います。 – Blackbelt

+0

例外が発生しています:java.lang.IllegalArgumentException:\ @Urlは\ @GET URL(パラメータ#1)で使用できません – sativa

4

retrofi2では、@ GETのパスがベースURLを上書きします。

@GET("https://someurl/api/supermarkets") 
Observable<List<TechIndex>> getTechIndexList(); 

ベースURLが何であっても、リクエストは「someurl/api/..」に送信されます。 希望します。

+0

thats良い点、ありがとう – j2emanue

関連する問題