我有一个场景,我必须使用相同的基本 URL 调用 API,例如www.myAPI.com
但以不同的baseUrl
.
我有一个 Retrofit 2 的实例,它是通过Builder
:
return new Retrofit.Builder()
.baseUrl(FlavourConstants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(okHttpClient)
.build();
The FlavourConstants.BASE_URL
看起来像这样:
public static final String BASE_URL = "http://myApi.development:5000/api/v1/";
对于一些WebRequests
,我必须调用相同的 API,但在其他 API 上,我必须从完全不同的 API 中调用它BaseUrl
。我该如何更改Retrofit
因此实例在运行时指向不同的 URL?
The Retrofit
实例没有.setBaseUrl
or setter
或任何类似的东西,因为它是通过Builder
.
有任何想法吗?
幸运的是,Retrofit 有一个简单的解决方案:
public interface UserManager {
@GET
public Call<ResponseBody> userName(@Url String url);
}
The url
字符串应指定您要使用的完整 URL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)