1. 服务器返回json字串如下:
1 | { |
android端使用Retrofit封装Bean来接收服务端返回json有两种方法。这里记录如下
两种方法都要使用的共用类 Result.kt代码如下:1
2
3
4
5
6
7
8
9open class Result<T>(
val data: T? = null,
val success: Boolean = false
) : BaseResult()
open class BaseResult {
val code: Int = 0
val msg: String? = null
}
方法一(推荐):1
2
3
4
5
6
7
8
9
10
11data class MeetingResp(
val pageCount: Int,
val total: Int,
val list: MutableList<EventWarningBean>?
)
data class EventWarningBean(
val createTime: String?,
val roomAddress: String?,
val timePeriod: String?,
val meetStatus: String?
)
使用方法一接收服务端返回json时只要: Result
方法二(不推荐):
新建类 ListResult.kt1
2
3
4
5open class ListResult<T> (
val list: List<T>?,
val pageCount:Int?,
val total: Int?
)
使用方法二接收服务端返回json时只要: Result<ListResult
这两种方式我之所以推荐使用方法一,而不推荐方法二原因是:
要建与Result同等级的ListResult类,如果日后要接入其他平台写的后台,里面参数不叫 list, 而是 rows 或者其他的,我是不是还得要建立很多个跟 ListResult类似的 顶级类呢?顶级类越少越好,
而方法一就很灵活了。
2. 有如下GET方式请求网址: http://116.62.167.158/api/gateway/police-content/meetingRoom/getNumList?floorName=123123&buildingName=123123
可以看到参数及对应的值都附加到请求url里了。这种请求方式使用 retrofit的 @Query 即可
@GET(“gateway/police-content/meetingRoom/getNumList”)
fun getRoomList(@Query(“floorName”) floorName: String, @Query(“buildingName”) buildingName: String): Observable<Result<ArrayList
GET请求 retrofit还提供了 @Path 方式,这种方式对应url是什么样子的,我当前不得而知,做个记录先。