2016-01-20 30 views
8

Güçlendirme adaptöründe tüm aramalarım için temel bir Url kullandım. böylece:Android Retrofit - baseUrl'i nasıl geçersiz kılar

Retrofit retrofit = new Retrofit.Builder() 
    .baseUrl("https://api.github.com") 
    .build(); 

GitHubService service = retrofit.create(GitHubService.class); 

tüm çağrılar artık baseURL kullanan, yukarıda benim kodudur düşünelim. Ama belirli bir çağrı için, temel url'yi değiştirmek istiyorum, sadece yerel olarak test etmek için olduğu gibi bunun için başka bir dinlenme adaptörü oluşturmak istemiyorum. Belki de baseurl kullanmamak için arayüzdeki son noktaları değiştirebilir miyim, yoksa kendi temel URL'imi sağlamak için bir not var mı?

cevap

19

tam eksiksiz URL'yi sağlamak için @Url ek notunu kullanabilirsiniz. ÖRNEĞİN. @GET içinde retrofi2 yolunda

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

Yardımı 'com.squareup.retrofit: retrofit: 1.8.0' kullanıyorum, şimdi bu notu bulamadığı söyleniyor. Dokümanlarda görmüyorum: http://static.javadoc.io/com.squareup.retrofit/retrofit/1.8.0/index.html?retrofit/http/package-tree.html – j2emanue

+1

hayır bu işe yaramaz. Ben retrofit 2 ile eklendiğini düşünüyorum. – Blackbelt

+0

Bir istisna alıyorum: java.lang.IllegalArgumentException: \ @Url \ @GET URL ile kullanılamaz (parametre # 1) – sativa

4

temel URL geçersiz kılar.

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

İstek, temel url ne olursa olsun "someurl/api/.." adresine gönderilecektir.

+0

iyi bir nokta şu, teşekkürler – j2emanue

İlgili konular