使用kotlin封装一个使用okhttp的类

下面是一个使用Kotlin封装OkHttp的示例类:

import okhttp3.*
import java.io.IOException

class HttpClient {

    private val client: OkHttpClient

    init {
        client = OkHttpClient()
    }

    fun get(url: String, callback: Callback) {
        val request = Request.Builder()
            .url(url)
            .build()
        
        client.newCall(request).enqueue(callback)
    }

    fun post(url: String, jsonBody: String, callback: Callback) {
        val mediaType = MediaType.parse("application/json")
        val requestBody = RequestBody.create(mediaType, jsonBody)

        val request = Request.Builder()
            .url(url)
            .post(requestBody)
            .build()
        
        client.newCall(request).enqueue(callback)
    }
}

使用示例:

val client = HttpClient()

client.get("https://api.example.com/data", object : Callback {
    override fun onResponse(call: Call, response: Response) {
        val responseBody = response.body?.string()
        // 处理响应数据
    }

    override fun onFailure(call: Call, e: IOException) {
        // 处理请求失败
    }
})

val jsonBody = "{\"name\":\"John\", \"age\":30}"
client.post("https://api.example.com/data", jsonBody, object : Callback {
    override fun onResponse(call: Call, response: Response) {
        val responseBody = response.body?.string()
        // 处理响应数据
    }

    override fun onFailure(call: Call, e: IOException) {
        // 处理请求失败
    }
})

以上示例中,HttpClient类封装了OkHttp的get和post方法,并通过Callback回调处理响应和请求失败的情况。在使用时,可以实例化一个HttpClient对象,并调用get或post方法来发送请求,并传入相应的URL和回调函数

标签: 文化


原文地址: https://gggwd.com/t/topic/icdA 著作权归作者所有。请勿转载和采集!