Я хотел бы знать, как создать RestAdapter, который может переключаться между двумя конечными точками. В настоящее время в моем приложении RestAdapter создается в классе Application (singleton). Я ищу способ иметь разные конечные точки, фактически не создавая несколько RestAdapter.
Дооснащение - несколько конечных точек с одним и тем же адаптером RestAdapter
Ответ 1
Для каждого запроса вызывается Endpoint. Если вы хотите включить алгоритм, вы можете реализовать свой собственный (например, делать циклический). Помимо этого, один RestAdapter привязан к конечной точке, вы не можете управлять им на основе каждого метода или чего-либо еще. - Джейк Уортон
Итак, я создал различные адаптеры для отдыха для разных конечных точек, которые я использую в своем приложении.
Ответ 2
Retrofit 1 вызывает конечную точку для каждого запроса (без кеша), вам просто нужно расширить Retrofit.Endpoint с некоторым сеттером и передать эту конечную точку при создании RestAdapter:
Endpoint mDynamicEndpoint = new DynamicEndpoint("http://firstdomain.fr");
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(mDynamicEndpoint)
.build();
mDynamicEndpoint.setBaseUrl("http://yourdomain.com");
Возможный дубликат: Динамические пути в дооснащении
Ответ 3
У вас может быть карта с конечной точки на RestAdapter. У вас будет один адаптер для каждого домена. Не отличное решение, если у вас много конечных точек.
Я полагаю, что решение DynamicEndpoint выше может привести к условиям гонки, если одновременно будут запущены два запроса на разные конечные точки.