代码之家  ›  专栏  ›  技术社区  ›  yahya

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

  •  4
  • yahya  · 技术社区  · 7 年前

    我看到这个了`

    How to set connection timeout with OkHttp

    但这是Java(Android)语言的链接。我想使用 科特林 语言 ` 我正在使用OkHttp库

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

    我的问题是我找不到 设置 Kotlin的连接超时和套接字超时。

    2 回复  |  直到 7 年前
        1
  •  13
  •   s1m0nw1    7 年前

    A. Builder 是必需的,没有可用的设置器。具有 OkHttp 3.9.1 您可以这样做:

    val client = OkHttpClient.Builder()
        .connectTimeout(10, TimeUnit.SECONDS)
        .writeTimeout(10, TimeUnit.SECONDS)
        .readTimeout(30, TimeUnit.SECONDS)
        .build()
    
        2
  •  0
  •   Alex Nolasco    6 年前

    与公认的答案差别不大,但似乎最好返回相同的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
        }
    }