阅读量:4
在使用OkHttp配合协程使用时,可以使用OkHttp的异步请求方法和Kotlin协程来实现非阻塞的网络请求。以下是一个简单的示例代码:
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext import okhttp3.OkHttpClient import okhttp3.Request fun main() { val client = OkHttpClient() runBlocking { withContext(Dispatchers.IO) { val request = Request.Builder() .url("https://www.example.com") .build() val response = client.newCall(request).execute() if (response.isSuccessful) { val responseBody = response.body?.string() println("Response: $responseBody") } else { println("Request failed") } } } }
在上面的示例中,我们使用runBlocking
创建一个协程作用域,并在withContext(Dispatchers.IO)
中调用OkHttp的异步请求方法execute()
来发起网络请求。在这个协程作用域内,我们可以同步地处理网络请求的响应,而不会阻塞主线程。