Android Retrofit - как переопределить baseUrl

в адаптере дооснащения я использовал базовый Url для всех моих вызовов. Итак:

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

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

допустим, что это мой код, все мои вызовы теперь используют этот baseUrl. Но для одного конкретного вызова я хочу изменить базовый url-адрес, я не хочу создавать для этого другой адаптер rest,так как он предназначен только для локального тестирования. Могу ли я изменить конечные точки в интерфейсе , чтобы не использовать baseurl, или есть аннотация для предоставления моего собственного базового url-адреса ?

2 ответов


можно использовать @Url аннотация предоставить полный URL-адрес. Г. Е.

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

в retrofi2 путь в @GET переопределяет базовый URL.

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

запрос будет отправлен в " someurl / api/.."независимо от того, какой базовый url. Надеюсь, это поможет