当前位置: 代码迷 >> 综合 >> Kotlin请求网络到返回的逻辑(简化版)
  详细解决方案

Kotlin请求网络到返回的逻辑(简化版)

热度:95   发布时间:2024-03-06 07:59:14.0

JSON 转Java Bean

  • 插件名称:GsonFormat
  • 插件文档:在 Bean 类中右击,选择 Generate -> GsonFormat,输入后台返回的 Json 数据即可转换成 Java Bean。

 请求网络过程,按着以下顺序写可以在上一层自动生成代码

1.Fragment

@Suppress("LABEL_NAME_CLASH", "DEPRECATION")
class NewHomeFragment :XXX {@Injectlateinit var viewModel: NewHomeViewModelprivate fun initView() {viewModel.getToast()}
}

 2.NewHomeViewModel

class NewHomeViewModel(private val handle: SavedStateHandle,private val presenter: NewHomePresenter
) : XXXViewModel() {fun getToast()=launch{presenter.getToast().onSuccess {if(it.list.isNullOrEmpty()){return@onSuccess}info(it.list[0].content)}.onFailure {it.handle()}}
}

3.NewHomePresenter

class NewHomePresenter @Inject constructor(private val homeFragmentService:HomeFragmentService) {suspend fun getToast()= safeApiCall {homeFragmentService.getToast()} 
}

 4.HomeFragmentService

interface HomeFragmentService {/*** 消息列表* @param body AssistantReminder* @return Response<List<ToastModel>>*/@GET("/message/toast/list/")suspend fun getToast(): Response.List<ToastModel>
}

 5.ToastModel


@Keep
data class ToastModel(var content:String? = null,var type:String? = null
)