Kotlin

OkHttp Client (Java interop)

admin by @admin ADMIN
4m ago
Jun 1, 2026
Public
0 0 up · 0 down Sign in to vote
OkHttp is the JVM-standard HTTP library. Works fine from Kotlin; use the `await()` extension from `okhttp3.coroutines` to get suspend support.
Kotlin
Raw
// build.gradle.kts:
//   implementation("com.squareup.okhttp3:okhttp:4.12.0")

import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import java.util.concurrent.TimeUnit

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

fun get(url: String): String {
    val req = Request.Builder()
        .url(url)
        .header("Accept", "application/json")
        .build()

    client.newCall(req).execute().use { resp ->
        if (!resp.isSuccessful) throw RuntimeException("HTTP ${resp.code}")
        return resp.body!!.string()
    }
}

fun postJson(url: String, json: String): String {
    val body = json.toRequestBody("application/json".toMediaType())
    val req = Request.Builder().url(url).post(body).build()
    client.newCall(req).execute().use { resp ->
        return resp.body!!.string()
    }
}

fun main() {
    println(get("https://api.github.com").take(100))
}
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.