1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/archermind-ti-retrofit-url-manager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

RetrofitUrlManager

Поддержка нескольких baseUrl в Retrofit и возможность изменения baseUrl во время выполнения.

Обзор

Рисунок 1: обзор

Проект

  • Создание простого API, который позволяет одновременно поддерживать несколько baseUrl и динамически изменять baseUrl в Retrofit.

Интеграция

Метод 1: прямое использование har-пакета
Создайте har-пакет с помощью library и добавьте его в папку libs интегрируемого проекта.
В файле gradle entry добавьте следующий код:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Метод 2: зависимость от gradle
allprojects{
    repositories{
        mavenCentral()
    }
}
implementation "com.gitee.archermind-ti:retrofit-url-manager:1.0.0-beta"

Использование

1. Инициализация
// При создании OkHttpClient экземпляр OkHttpClient.Builder() передаётся методу with() для инициализации конфигурации
 this.mOkHttpClient = RetrofitUrlManager.getInstance().with(new OkHttpClient.Builder())
              .readTimeout(5, TimeUnit.SECONDS)
              .connectTimeout(5, TimeUnit.SECONDS)
              .build();
2. Шаг 1
  public interface OneApiService {
  /**
   * Если не требуется использовать несколько baseUrls, можно продолжить использовать default baseUrl, переданный в Retrofit при инициализации, и не добавлять заголовок DOMAIN_NAME_HEADER.
   */
  @Headers({DOMAIN_NAME_HEADER + GITHUB_DOMAIN_NAME})
  /**
   * Можно использовать разные baseUrls путём добавления полного пути в аннотации, но это не позволит динамически менять baseUrl во время работы приложения.
   */
  @GET("/users")
  Observable<ResponseBody> getUsers(@Query("since") int lastIdQueried, @Query("per_page") int perPage);
3. Шаг 2
 // Вы можете изменить baseUrl в любое время во время работы приложения (для интерфейса, где объявлен заголовок Domain-Name).
  String APP_DOUBAN_DOMAIN = "https://api.douban.com";
  RetrofitUrlManager.getInstance().putDomain(DOUBAN_DOMAIN_NAME, APP_DOUBAN_DOMAIN);
4. Если необходимо изменить глобальный baseUrl
// BaseUrl, настроенный в заголовке Domain-Name, будет переопределять baseUrl в глобальных настройках.
 mGlobalUrl = (TextField) findComponentById(ResourceTable.Id_et_global_url);
 RetrofitUrlManager.getInstance().setGlobalDomain(mGlobalUrl.getText().toString().trim());

Авторские права и лицензии

Copyright 2017, jessyan

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/archermind-ti-retrofit-url-manager.git
git@gitlife.ru:oschina-mirror/archermind-ti-retrofit-url-manager.git
oschina-mirror
archermind-ti-retrofit-url-manager
archermind-ti-retrofit-url-manager
master