【发布时间】:2021-10-25 07:14:00
【问题描述】:
我从同一个端点有两个不同的响应。一种是实际成功结果数据模型,一种是错误响应模型。两者的json结构都是这样的:
成功响应:
{
"result":{
"id":1,
"name_en":"Stack Over Flow",
"summary":"Stack Overflow is the largest, most trusted online community for developers to learn, share their programming knowledge, and build their careers."
}
}
错误响应:
{
"message": "Login Failed"
}
我可以处理成功响应,但我无法显示从服务器获得的错误消息。我尝试了很多方法,但我无法做到这一点。 在这里我分享一下我所做的一些方面
MainViewModel.kt
var job: Job? = null
val myDataResponse: MutableLiveData<HandleResource<DataResponse>> =MutableLiveData()
fun myData() {
job = CoroutineScope(Dispatchers.IO).launch {
val myDataList = mainRepository.myData()
withContext(Dispatchers.Main) {
myDataResponse.postValue(handleMyDataResponse(myDataList))
}
}
}
private fun handleMyDataResponse(myDataResponse: Response<DataResponse>): HandleResource<DataResponse>? {
if (myDataResponse.isSuccessful) {
myDataResponse.body()?.let { myDataData ->
return HandleResource.Success(myDataData)
}
}
return HandleResource.Error(myDataResponse.message())
}
我需要一个解决方案,而服务器给我错误消息我想在我的前端显示相同的错误消息。我怎样才能做到这一点?
【问题讨论】:
标签: android kotlin mvvm retrofit2 kotlin-coroutines