Дооснащение - несколько конечных точек с одним и тем же адаптером RestAdapter

Я хотел бы знать, как создать RestAdapter, который может переключаться между двумя конечными точками. В настоящее время в моем приложении RestAdapter создается в классе Application (singleton). Я ищу способ иметь разные конечные точки, фактически не создавая несколько 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 выше может привести к условиям гонки, если одновременно будут запущены два запроса на разные конечные точки.