android net

drake c2ee81a786 init 5 yıl önce
gradle c2ee81a786 init 5 yıl önce
net c2ee81a786 init 5 yıl önce
sample c2ee81a786 init 5 yıl önce
.gitignore c2ee81a786 init 5 yıl önce
README.md c2ee81a786 init 5 yıl önce
build.gradle c2ee81a786 init 5 yıl önce
gradle.properties c2ee81a786 init 5 yıl önce
gradlew c2ee81a786 init 5 yıl önce
gradlew.bat c2ee81a786 init 5 yıl önce
settings.gradle c2ee81a786 init 5 yıl önce

README.md

Net

针对Kalle网络请求框架进行扩展

主要新增特性

  • Kotlin DSL
  • RxJava
  • 自动错误信息吐司
  • 自动JSON解析
  • 自动处理下拉刷新和上拉加载
  • 自动处理分页加载
  • 自动缺省页
  • 自动生命周期
  • 自动处理加载对话框

同时具备Kalle的网络缓存/进度监听等特性

安装

project of build.gradle

allprojects {
    repositories {
        // ...
        maven { url 'https://jitpack.io' }
    }
}

module of build.gradle

implementation 'com.github.liangjingkanji:Net:1.0'

请求方式

Post

post<Model>(""){
  param("key", "value")
}.net { 

}

Model 即JSONBean或者说POJO 数据模型, 会将服务器返回的JSON解析成该数据模型在net回调中可以使用it调用

Get

get<Model>(""){
  param("key", "value")
}.net { 

}

Model 泛型如果换成String, 将会在成功回调中得到字符串对象.

文件上传

post<Model>(""){
  file("file", File("path"))
}.net {

}

这是支持Kalle任何参数添加方式

生命周期

将Fragment或者Activity作为参数传递即可在页面关闭时自动取消订阅, 避免操作已销毁视图.

post<Model>(""){
  param("key", "value")
}.net(activity) { 

}

其他的对话框或者缺省页和下拉刷新等自动支持生命周期管理

对话框

将会在网络请求开始时弹出对话框, 结束时关闭对话框.

post<Model>(""){
  file("file", File("path"))
}.dialog(this) {

}

自定义对话框

fun <M> Observable<M>.dialog(
    activity: FragmentActivity,
    dialog: Dialog = ProgressDialog(activity),
    cancelable: Boolean = true,
    block: (DialogObserver<M>.(M) -> Unit)? = null
)
  • cancelable 决定对话框是否可以点击用户关闭
  • dialog 传入自定义对话框

对话框关闭会导致网络请求被取消订阅

缺省页

需要引入第三方库: StateLayout

post<Model>(""){
  param("key", "value")
}.state(stateLayout) { 

}

关于state函数支持参数类型有如下:

  • stateLayout
  • activity
  • fragment
  • view

会根据参数的不同而给不同的对象添加缺省页状态

分页加载

需要引入第三方库: BRV

post<Model>(""){
  file("file", File("path"))
}.page(page) {

}