我想知道如何创建一个可以在两个端点之间切换的RestAdapter。目前在我的应用程序中,RestAdapter是在Application类(singleton)中创建的。我正在寻找一种方法来获得不同的端点,而无需实际创建多个RestAdapter。
答案 0 :(得分:8)
Retrofit 1为每个请求调用Endpoint(无缓存),只需要使用某个setter扩展Retrofit.Endpoint并在创建RestAdapter时传递此Endpoint:
Endpoint mDynamicEndpoint = new DynamicEndpoint("http://firstdomain.fr");
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(mDynamicEndpoint)
.build();
mDynamicEndpoint.setBaseUrl("http://yourdomain.com");
答案 1 :(得分:5)
为每个请求调用端点。如果要打开算法,可以实现自己的算法(例如,进行循环)。除此之外,单个RestAdapter绑定到端点,您无法基于每个方法或任何方式控制它。 - 杰克沃顿
所以我为我在我的应用中使用的不同端点创建了不同的休息适配器。
答案 2 :(得分:0)
您可以拥有从端点到RestAdapter的地图。您最终会为每个域使用一个适配器。如果你有很多端点,这不是一个很好的解决方案。
我相信上面的DynamicEndpoint解决方案可能会导致竞争条件,如果同时触发了对不同端点的两个请求。