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

本文介绍了如何在Kotlin中利用OKHttp库进行POST请求,并且展示了如何构建JsonObject传递参数以及解析Json响应。通过创建一个JsonObject,设置username和password字段,然后在请求体中以json格式发送数据,实现登录功能。示例代码详细展示了请求过程和获取token的操作。
摘要由CSDN通过智能技术生成

在发送请求前需要加入一些配置来确保能够正常运行,具体可以参考之前的文章,这里就不多做赘述。个人笔记: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")

            }
        }
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值