Retrofit - 具有相同RestAdapter的多个端点

时间:2015-01-07 09:44:48

标签: android retrofit

我想知道如何创建一个可以在两个端点之间切换的RestAdapter。目前在我的应用程序中,RestAdapter是在Application类(singleton)中创建的。我正在寻找一种方法来获得不同的端点,而无需实际创建多个RestAdapter。

3 个答案:

答案 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");

可能重复:Dynamic Paths in Retrofit

答案 1 :(得分:5)

为每个请求调用端点。如果要打开算法,可以实现自己的算法(例如,进行循环)。除此之外,单个RestAdapter绑定到端点,您无法基于每个方法或任何方式控制它。 - 杰克沃顿

所以我为我在我的应用中使用的不同端点创建了不同的休息适配器。

答案 2 :(得分:0)

您可以拥有从端点到RestAdapter的地图。您最终会为每个域使用一个适配器。如果你有很多端点,这不是一个很好的解决方案。

我相信上面的DynamicEndpoint解决方案可能会导致竞争条件,如果同时触发了对不同端点的两个请求。