kotlin中使用 xUtils 轻量级网络请求工具:
xUtils 包含了orm, http(s), image, view注解, 但依然很轻量级(251K), 并且特性强大, 看看官网就知道了
git地址: https://github.com/Jay-YaoJie/xUtils3
项目中快速配置xUtils3
- 使用Gradle构建时添加一下依赖即可
// 最新的包引用可以去查看 http://jcenter.bintray.com/org/xutils/xutils/
implementation 'org.xutils:xutils:3.7.6'
- 加入网络请求权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- 在Application初始化
// 这一步之后, 我们就可以在任何地方使用x.app()来获取Application的实例了.
x.Ext.init(this);
// 是否输出debug日志, 开启debug会影响性能.
x.Ext.setDebug(false);
xUtils3主要包含注解模块、网络模块、图片模块和数据库模块,下面我做了网络模块的工具,可以直接使用在项目中
package com.hldm.lbtafxapp.utils
import android.os.Environment
import com.yzb.lbtafxapp.FileKt.LogUtils
import com.yzb.lbtafxapp.utils.ToastUtil
import org.xutils.common.Callback
import org.xutils.http.RequestParams
import org.xutils.x
import java.io.File
import org.xutils.common.task.PriorityExecutor
/**
* author : Jeff 5899859876@qq.com
* Csdn :https://blog.csdn.net/Jeff_YaoJie
* Github: https://github.com/Jay-YaoJie
* Created : 2019-09-21.
* description : xUtils3网络模块的使用
* https://github.com/Jay-YaoJie/xUtils3
*
*/
object xHttpUtil {
val tag: String = "xHttpUtil"
var call: Callback.Cancelable? = null
/**
* GET异步请求
* @param RequestParams: params
* val params = RequestParams(url)
params.addQueryStringParameter("username", "abc")
params.addQueryStringParameter("password", "123")
* @param callback: xCallback
*/
open fun get_Async(params: RequestParams, callback: xCallback) {
// val params = RequestParams(url)
// params.addQueryStringParameter("username", "abc")
// params.addQueryStringParameter("password", "123")
// 默认缓存存活时间, 单位:毫秒(如果服务器没有返回有效的max-age或Expires则参考)
params.cacheMaxAge = (1000 * 60).toLong()
call = x.http().get(params, object : Callback.CacheCallback<String> {
private var hasError = false
private var result: Any? = null
override fun onCache(result: String): Boolean { //得