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

OSCHINA-MIRROR/jenly1314-RetrofitHelper

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

RetrofitHelper для Android — это вспомогательный класс, который упрощает настройку нескольких базовых URL-адресов для Retrofit.

Основные функции:

  • поддержка настройки нескольких базовых URL;
  • возможность динамического изменения базового URL;
  • настройка времени ожидания ответа сервера;
  • добавление общих заголовков запросов;
  • мониторинг прогресса выполнения запросов.

Gif-демонстрация

Вы также можете напрямую загрузить демонстрационное приложение, чтобы оценить его работу.

Установка

Gradle:

  1. В файле build.gradle или setting.gradle проекта добавьте удалённый репозиторий:
repositories {
    //...
    mavenCentral()
}
  1. В файл build.gradle модуля добавьте зависимость:
// AndroidX версия
implementation 'com.github.jenly1314:retrofit-helper:1.1.0'

Поскольку RetrofitHelper зависит от retrofit, который эффективен только во время компиляции, ваш проект также должен зависеть от retrofit для нормального использования.

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

Пример

Основные шаги интеграции

Step 1. Используйте JDK8 для компиляции. Добавьте конфигурацию в файл android{} файла build.gradle:

compileOptions {
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
}

Step 2. Инициализируйте OkHttpClient с помощью RetrofitHelper.

// Создайте OkHttpClient, поддерживающий несколько базовых URL, с помощью RetrofitHelper
val clientBuilder = RetrofitHelper.getInstance().createClientBuilder()
// ... Ваши собственные конфигурации

// Или используйте метод два
val okHttpClient = RetrofitHelper.getInstance()
        .with(clientBuilder)
        // ... Ваши собственные конфигурации
        .build()
// Полный пример
val okHttpClient = RetrofitHelper.getInstance()
        .createClientBuilder()
        .addInterceptor(LogInterceptor())
        .build()
val retrofit = Retrofit.Builder()
        .baseUrl(Constants.BASE_URL)
        .client(okHttpClient)
        .addConverterFactory(GsonConverterFactory.create(Gson()))
        .build()

Step 3. При определении интерфейса используйте аннотации для маркировки соответствующего интерфейса. Это позволит динамически изменять базовые URL и другие функции.

interface ApiService {

    /**
     * Пример интерфейса без каких-либо меток, как обычно используется
     * @return
     */
    @GET("api/user")
    fun getUser(): Call<User>

    /**
     * Стандартный ответ интерфейса Retrofit, включая метки DomainName и Timeout
     * @return
     */
    @DomainName(domainName) // domainName — псевдоним домена, используемый для поддержки переключения на соответствующий базовый URL
    @Timeout(connectTimeout = 15,readTimeout = 15,writeTimeout = 15,timeUnit = TimeUnit.SECONDS) // Метка тайм-аута, используемая для настройки времени ожидания
    @GET("api/user")
    fun getUser(): Call<User>

    /**
     * Динамическое изменение базового URL
     * @return
     */
    @BaseUrl(baseUrl) // baseUrl — метка, используемая для поддержки указания базового URL
    @GET("api/user")
    fun getUser(): Call<User>

    //--------------------------------------

    /**
     * Использование RxJava для возврата интерфейса, включая метки DomainName и Timeout
     * @return
     */
    @DomainName(domainName) // domainName — псевдоним домена, используемый для поддержки переключения на соответствующий базовый URL
    @Timeout(connectTimeout = 20,readTimeout = 10) // Метка таймаута, используемая для настройки времени ожидания
    @GET("api/user")
    fun getUser(): Observable<User>

    /**
     * Загрузка; можно отслеживать прогресс загрузки через RetrofitHelper.getInstance().addResponseListener(key, listener)
     */
    @ResponseProgress(key) // Поддержка мониторинга прогресса ответа, настраиваемая конфигурация ключа мониторинга
    @Streaming
    @GET("api/download")
    fun download(): Call<ResponseBody>
}

Step 4. Добавьте поддержку нескольких базовых URL.

// Поддержка нескольких базовых URL, domainName — псевдоним домена, domainUrl — базовый URL, соответствующий псевдониму домена
RetrofitHelper.getInstance().putDomain(domainName,domainUrl)
``` ## Связаться со мной

| **WeChat** | **Gmail**                                                                      | **QQ**                                                                           | **QQ группа 1**                                                             | **QQ группа 2**                                                               |
|:----------| :------------------------------------------------------------------------------| :-------------------------------------------------------------------------------|:--------------------------------------------------------------------------|:----------------------------------------------------------------------------|
| Jenly666  | jenly1314@gmail.com                                                            | jenly1314@vip.qq.com                                                             | 20867961                                                                   | 64020761                                                                     |

<div>
   <img src="https://jenly1314.github.io/image/page/footer.png">
</div>

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

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

Введение

RetrofitHelper — это вспомогательный класс для Retrofit, который поддерживает конфигурацию нескольких базовых URL и позволяет динамически изменять базовый URL, а также динамически настраивать время ожидания. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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