Kotlin - 如何使用 OkHttp Kotlin 设置连接超时
Kotlin - How to set connection timeout with OkHttp Kotlin
我看到这个`
但是这个link for Java(Android) Language.I想用kotlin语言...
`
我正在使用 OkHttp 库
val client = OkHttpClient()
val time = client.connectTimeoutMillis() // it's get only methood but i looking for method for set Timeout
我的麻烦是我找不到如何为 Kotlin 设置 连接超时和套接字超时。
需要 Builder
,没有可用的设置器。使用 OkHttp 3.9.1 你可以这样做:
val client = OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build()
与接受的答案没有太大区别,但似乎最好 return 相同的 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
}
}
我看到这个`
但是这个link for Java(Android) Language.I想用kotlin语言... ` 我正在使用 OkHttp 库
val client = OkHttpClient()
val time = client.connectTimeoutMillis() // it's get only methood but i looking for method for set Timeout
我的麻烦是我找不到如何为 Kotlin 设置 连接超时和套接字超时。
需要 Builder
,没有可用的设置器。使用 OkHttp 3.9.1 你可以这样做:
val client = OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build()
与接受的答案没有太大区别,但似乎最好 return 相同的 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
}
}