个人笔记:Kotlin使用Okhttp发送Post请求

在发送请求前需要加入一些配置来确保能够正常运行,具体可以参考之前的文章,这里就不多做赘述。个人笔记:Kotlin使用OKHttp解析Json文件_福尔蘑菇头的博客-CSDN博客

与get请求不同的是post请求一般都带有参数,所以需要创建一个jsonObject用于传递值

var jsonObject = JSONObject()
jsonObject.put("userName","root")
jsonObject.put("password","123456")

 然后再将值以json形式发送,完整代码如下

fun UserLogin(){
        val user = username.text.toString()
        val pass = password.text.toString()
        //构建url地址
        var url = Strurl+"/prod-api/api/login"
        //构建Json字符串
        var jsonObject= JSONObject()
        jsonObject.put("username",user)
        jsonObject.put("password",pass)
        var jsonStr=jsonObject.toString()
        //调用请求
        val requestBody = jsonStr?.let {
            //创建requestBody 以json的形式
            val contentType: MediaType = "application/json".toMediaType()
            jsonStr.toRequestBody(contentType)
        } ?: run {
            //如果参数为null直接返回null
            FormBody.Builder().build()
        }
        thread {
            val client = OkHttpClient()
            val request = Request.Builder()
                .url(url)
                .post(requestBody) //以post的形式添加requestBody
                .build()
            var response = client.newCall(request).execute()
            val responseData = response.body?.string()
            if (responseData != null) {
                val jsonObject = JSONObject(responseData)
                val token = jsonObject.getString("token")
                Log.d("LoginActivity", "$token")

            }
        }
    }

你可能感兴趣的:(android,kotlin)