每次发请求需要写以下样板代码,封装起来,减少写代码

AndroidManifest.xml 添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

app/build.gradle

    implementation 'com.squareup.okhttp3:okhttp:4.8.1'
    implementation 'com.google.code.gson:gson:2.8.9'

新建一个工具类 HttpUtil.kt

object HttpUtil {
    fun sendOkHttpRequest(address: String, callback: okhttp3.Callback) {
        val client = OkHttpClient()
        val request = Request.Builder()
            .url(address)
            .build()
        client.newCall(request).enqueue(callback)
    }
}

使用:

        btn1.setOnClickListener {
            val address = "http://192.168.1.100:3333/index"

            HttpUtil.sendOkHttpRequest(address, object : Callback {
                override fun onResponse(call: Call, response: Response) {
                    // 得到服务器返回的具体内容
                    val responseData = response.body?.string()

                    if (responseData != null) {
                        Log.d("[long] www", responseData)
                    }
                }
                override fun onFailure(call: Call, e: IOException) {
                    // 在这里对异常情况进行处理
                }
            })
        }

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐