使用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 著作权归作者所有。请勿转载和采集!