okhttpkt

OKKT
專門針對(duì)kotlin開發(fā)的okhttp 的tool
幾大特點(diǎn):
1、針對(duì)文件請(qǐng)求,重寫okio計(jì)算方案,可實(shí)時(shí)顯示請(qǐng)求文件進(jìn)度,防止okhttp在直接做請(qǐng)求文件的時(shí)候采取的直傳策略,從而導(dǎo)致下載文件間隔過長。
2、利用協(xié)程完全替代rxjava做主線程通訊以及線程調(diào)度,增加程序的交互效率。
3、注解注入,完美的api流程,使你毋須對(duì)類型進(jìn)行轉(zhuǎn)換,直接上手
4、純粹的kotlin代碼,利用ktx語法糖結(jié)合代碼達(dá)成十分簡約的書寫方式
5、擁有工廠模式與單例模式的config方式,甚至擴(kuò)展了一個(gè)接口用來自定義自己的client做自定義解決方式
簡單案例:
使用前提導(dǎo)入:
implementation 'com.stormkid:okhttpkt:1.0.9.2'
1、全局注冊(cè)
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)
}
}
注意:任何實(shí)現(xiàn)CallbackRule接口類必須把CallbackRule接口當(dāng)作第一個(gè)接口來實(shí)現(xiàn)!注意書寫順序,切勿寫成:"
class Main: Serilizable,CallbackRule<YourDataClass>"