Kotlin - 如何使用OkHttp Kotlin设置连接超时

时间:2018-01-05 21:29:19

标签: kotlin timeout okhttp kotlin-android-extensions

我看到了这个`

  

How to set connection timeout with OkHttp

但这个Java(Android)语言链接。我想使用 kotlin 语言... ` 我正在使用OkHttp库

{{1}}

我的麻烦是我无法找到如何设置连接超时和套接字超时对于Kotlin。

2 个答案:

答案 0 :(得分:3)

需要Builder,没有可用的限制器。使用OkHttp 3.9.1,您可以执行此操作:

val client = OkHttpClient.Builder()
    .connectTimeout(10, TimeUnit.SECONDS)
    .writeTimeout(10, TimeUnit.SECONDS)
    .readTimeout(30, TimeUnit.SECONDS)
    .build()

答案 1 :(得分:0)

与接受的答案没有太大不同,但是似乎最好返回相同的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
    }
}