class PlainClient : IPlainClient { private val client = HttpClient { install(JsonFeature) { val kxs = KotlinxSerializer(Json.nonstrict) serializer = kxs } } private val okhttp = OkHttpClient() override fun get( baseUrl: String, path: String, token: String ): PlainResponse { return runBlocking { val response = client.get { header("Authorization", "Bearer $token") url { takeFrom(baseUrl) encodedPath = path } } PlainResponse(response.status.value, response.readText()) } } override fun post(baseUrl: String, path: String, token: String) { TODO("Not yet implemented") } override fun postFormData( baseUrl: String, path: String, token: String, formParams: Map ): PlainResponse { return runBlocking { val formData = formData { formParams.forEach { append(it.key, it.value) } } val response = client.submitFormWithBinaryData(formData) { header("Authorization", "Bearer $token") url { takeFrom(baseUrl) encodedPath = path } } PlainResponse(response.status.value, response.readText()) } } }