kotlin 使用OKHttp

127 阅读1分钟

get

val client = OkHttpClient()
val request = Request.Builder().url("https://www.baidu.com").build() //获得请求对象
val response = client.newCall(request).execute() //获取新的请求
val responseData = response.body?.toString()  //相应结果内容

post

val client = OkHttpClient()
val requestBody = FormBody.Builder().add("account","admin").add("password","123456").build() //表单参数
val request = Request.Builder().url("https://www.baidu.com").post(requestBody).build() //post请求
val response = client.newCall(request).execute() //获取新的请求
val responseData = response.body?.toString()  //相应结果内容

当返回值为"okhttp3.internal.http.RealResponseBody@eacf8c5",

则将response.body?.toString()改为response.body?.string()

post传递json对象

thread {
    try {
        val client = OkHttpClient()
        val json = """
{
    "perception": {
        "inputText": {
            "text": "你好"
        }
    },
    "userInfo": {
        "apiKey": "edc59a11ad644bd0a511d9f1c88c1b5c",
        "userId": "1" 
    }
}
""".trimIndent()
        val requestBody = RequestBody.create("application/json".toMediaTypeOrNull(), json)
        val request = Request.Builder().url("http://openapi.tuling123.com/openapi/api/v2").post(requestBody).build() //post请求
        val response = client.newCall(request).execute() //获取新的请求
        val responseData = response.body?.string()
        val result = JSONObject(JSONArray(JSONObject(responseData).getString("results")).getJSONObject(0).getString("values")).getString("text")
        println(result)
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

blog.csdn.net/w605283073/…