创新实训博客(6)——Kotlin的okhttp、fastjson、intent传值
2020-07-14 06:21
423 查看
引入okhttp和fastjson依赖
直接修改build.gradle文件
[code]// 第三方依赖 implementation 'com.alibaba:fastjson:1.1.71.android' implementation 'com.squareup.okhttp3:okhttp:4.7.2'
AndroidManifest中添加网络访问权限
[code]<uses-permission android:name="android.permission.INTERNET" />
fastjson构造json对象
首先初始化一个json对象
然后使用put函数传进参数
[code]val obj = JSONObject() obj.put("username", username.text.toString()) obj.put("email", email.text.toString()) obj.put("password", passwd.text.toString())
fastjson解析json对象
首先把字符串转换成json对象
[code]val resobj = JSON.parseObject(response.body!!.string())
然后读取对应的参数值
[code]Toast.makeText(this@RegisterActivity, resobj["code"].toString() + "-" + resobj["msg"].toString(), Toast.LENGTH_SHORT).show()
okhttp构造请求
首先初始化一个HTTP客户端对象,然后设置好要发送的消息的类型
然后设置requestBody的内容,然后构造好一个请求
[code]// 设置请求实例 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()
okhttp发起请求并处理
[code]okHttpClient.newCall(request).enqueue(object : Callback { override fun onFailure(call: Call, e: IOException) { e.printStackTrace() } ...
Looper.prepare()和Looper.loop()
在okhttp的子线程中,如果需要使用Toast等,必须要使用Looper。
[code]Looper.prepare() Toast.makeText().show() Looper.loop()
intent传值
首先设置新的intent对象
[code]val newIntent = Intent(this@LoginActivity, MainActivity::class.java)
然后使用put传值,并启动新的activity
[code]newIntent.putExtra("data", resobj["data"].toString())
在activity端可以用intent读取到传来的参数
[code]val data = intent.getStringExtra("data")
相关文章推荐
- 创新实训博客(7)——Kotlin的Fragment、Handler、ListView和Adapter配置使用
- 创新实训博客(15)——Android开发中Kotlin与后端的接口交互
- 创新实训博客(29)——接口调用请求汇总(可视化部分)
- 创新实训博客(13)——App端界面设计(博客以及其他部分)
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (三)
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (四)
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十)
- okhttp +fastJson 在UI层的回调封装
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (二)
- 创新实训博客(28)——接口调用请求汇总(App和博客相关部分)
- 创新实训博客(12)——App端界面设计(首页Fragment部分)
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (五)
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)
- 创新实训博客(45)——Vue打包GitHub Page以及遇到的坑
- 创新实训博客(27)——接口调用请求汇总(博客相关部分)
- 创新实训博客(11)——App端界面设计(基本部分)
- okhttp+fastjson+三套环境的android—demo
- 创新实训博客(44)——针对axios的封装的新的体验
- 创新实训博客(26)——接口调用请求汇总(后台管理部分)
- 创新实训博客(10)——前端界面设计(后台管理部分)