Okkt —— 一款针对kotlin语言封装的Okhttp网络请
2019-07-01 本文已影响77人
stormKid
okhttpkt
OKKT专门针对kotlin开发的okhttp 的tool
几大特点:
1、针对文件请求,重写okio计算方案,可实时显示请求文件进度,防止okhttp在直接做请求文件的时候采取的直传策略,从而导致下载文件间隔过长。
2、利用协程完全替代rxjava做主线程通讯以及线程调度,增加程序的交互效率。
3、注解注入,完美的api流程,使你毋须对类型进行转换,直接上手
4、纯粹的kotlin代码,利用ktx语法糖结合代码达成十分简约的书写方式
5、拥有工厂模式与单例模式的config方式,甚至扩展了一个接口用来自定义自己的client做自定义解决方式
简单案例:
使用前提导入:
implementation 'com.stormkid:okhttpkt:1.0.3.1'
1、全局注册
class BaseApplication:Application (){
override fun onCreate() {
super.onCreate()
Okkt.instance.setBase("http://xxxx.com").initHttpClient()
}
}
2、get
fun doGet(){
Okkt.instance.Builder().setUrl("/part").get(object:CallbackRule<YourDataClass>{
override suspend fun onSuccess(entity: YourDataClass, flag: String) {
}
override suspend fun onFailed(error: String) {
}
})
}
3、implement get
class MainActivity : AppCompatActivity(),CallbackRule<YourDataClass> ,Serializable{
override suspend fun onSuccess(entity: YourDataClass, flag: String) {
}
override suspend fun onFailed(error: String) {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Okkt.instance.Builder().setUrl("/part").get(this)
}
}
注意:任何实现CallbackRule接口类必须把CallbackRule接口当作第一个接口来实现!注意书写顺序,切勿写成:"
class Main: Serilizable,CallbackRule<YourDataClass>
"