Вопрос:

Kotlin - Как установить время ожидания соединения с OkHttp Kotlin

kotlin timeout okhttp kotlin-android-extensions

2625 просмотра

2 ответа

76 Репутация автора

Я вижу это

Как установить время ожидания соединения с OkHttp

Но эта ссылка для Java (Android) Language. Я хочу использовать kotlin Language ... `Я использую библиотеку OkHttp

 val client = OkHttpClient()

 val time = client.connectTimeoutMillis() // it's get only methood but i looking for method for set Timeout

и моя проблема в том, что я не могу найти, как установить время ожидания соединения и сокета для Kotlin.

Автор: yahya Источник Размещён: 05.01.2018 09:29

Ответы (2)


3 плюса

33768 Репутация автора

Решение

Требуется A Builder, нет доступных сеттеров. С OkHttp 3.9.1 вы можете сделать это:

val client = OkHttpClient.Builder()
    .connectTimeout(10, TimeUnit.SECONDS)
    .writeTimeout(10, TimeUnit.SECONDS)
    .readTimeout(30, TimeUnit.SECONDS)
    .build()
Автор: s1m0nw1 Размещён: 05.01.2018 10:00

0 плюса

14394 Репутация автора

Не сильно отличается от принятого ответа, но, похоже, лучше вернуть тот же OkHttpClient, чтобы избежать утечек памяти.

sealed class ClientBuilder {

    companion object {
        val plainClient: OkHttpClient by lazy {
             OkHttpClient
                .Builder()
                .connectTimeout(5, TimeUnit.SECONDS)
                .readTimeout(3, TimeUnit.SECONDS)
                .writeTimeout(3, TimeUnit.SECONDS)
                .build()
        }
    }

    fun client() : OkHttpClient {
        return plainClient
    }
}
Автор: Alex Nolasco Размещён: 14.05.2019 07:40
Вопросы из категории :
32x32