直接修改build.gradle文件
// 第三方依赖
implementation 'com.alibaba:fastjson:1.1.71.android'
implementation 'com.squareup.okhttp3:okhttp:4.7.2'
首先初始化一个json对象
然后使用put函数传进参数
val obj = JSONObject()
obj.put("username", username.text.toString())
obj.put("email", email.text.toString())
obj.put("password", passwd.text.toString())
首先把字符串转换成json对象
val resobj = JSON.parseObject(response.body!!.string())
然后读取对应的参数值
Toast.makeText(this@RegisterActivity, resobj["code"].toString() + "-" + resobj["msg"].toString(), Toast.LENGTH_SHORT).show()
首先初始化一个HTTP客户端对象,然后设置好要发送的消息的类型
然后设置requestBody的内容,然后构造好一个请求
// 设置请求实例
val okHttpClient = OkHttpClient()
val mediaType = "application/json; charset=utf-8".toMediaType()
val requestBody = JSON.toJSONString(obj).toRequestBody(mediaType)
val request = Request.Builder()
.url("$api/user/regist")
.header("Auth", "token")
.post(requestBody)
.build()
okHttpClient.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
e.printStackTrace()
}
...
在okhttp的子线程中,如果需要使用Toast等,必须要使用Looper。
Looper.prepare()
Toast.makeText().show()
Looper.loop()
首先设置新的intent对象
val newIntent = Intent(this@LoginActivity, MainActivity::class.java)
然后使用put传值,并启动新的activity
newIntent.putExtra("data", resobj["data"].toString())
在activity端可以用intent读取到传来的参数
val data = intent.getStringExtra("data")