okhttp kotlin code example
Example 1: okhttp3 application/json get kotlin
val BASE_URL = "https://api.unsplash.com"
val ACCESS_KEY = "..."
val path = "/photos/$id"
val uri = Uri.parse(BASE_URL)
.buildUpon()
.appendEncodedPath(path)
.build()
val client = OkHttpClient()
val request = Request.Builder()
.url(uri.toString())
.addHeader("Accept-Version", "v1")
.addHeader("Authorization", "Client-ID $ACCESS_KEY")
.get()
.build()
val response = client.newCall(request).execute()
val jsonDataString = response.body()?.string()
val json = JSONObject(jsonDataString)
if (!response.isSuccessful) {
val errors = json.getJSONArray("errors").join(", ")
throw Exception(errors)
}
val rawUrl = json.getJSONObject("urls").getString("raw")
Example 2: okhttp kotlin example
private val client = OkHttpClient()
fun run() {
val request = Request.Builder()
.url("http://publicobject.com/helloworld.txt")
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
response.use {
if (!response.isSuccessful) throw IOException("Unexpected code $response")
for ((name, value) in response.headers) {
println("$name: $value")
}
println(response.body!!.string())
}
}
})
}