OKKT
专门针对kotlin开发的okhttp 的tool
1、针对文件请求,重写okio计算方案,可实时显示请求文件进度,防止okhttp在直接做请求文件的时候采取的直传策略,从而导致下载文件间隔过长。
2、利用协程完全替代rxjava做主线程通讯以及线程调度,增加程序的交互效率。
3、注解注入,完美的api流程,使你毋须对类型进行转换,直接上手
4、纯粹的kotlin代码,利用ktx语法糖结合代码达成十分简约的书写方式
5、拥有工厂模式与单例模式的config方式,甚至扩展了一个接口用来自定义自己的client做自定义解决方式
implementation 'com.stormkid:okhttpkt:1.0.2.1'
class BaseApplication:Application (){ override fun onCreate() { super.onCreate() Okkt.instance.setBase("http://xxxx.com").initHttpClient() } }
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) { } }) }
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>
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句