如何 Post 一个包含数组的模型进入改造 Body Post?
How To Post a Model Containing Array into The Retrofit Body Post?
请帮我制作这种Body
参数的改装界面:
{
"filter": {
"category_id": [1, 2],
"state": ["kuala lumpur", "selangor"]
},
"sort": {
"type": "state",
"value": "ASC"
}
}
所以目前这是我的改装界面
@FormUrlEncoded
@POST("universities-filter-sort")
suspend fun getUniversitiesFilterSort(
@Field("filter") filter: Filters.Filter,
@Field("sort") sort: Filters.Sort
): Call<University>
这是我的 body 模型 class 至于参数
data class Filters(
@SerializedName("filter")
val filter: Filter,
@SerializedName("sort")
val sort: Sort
) {
data class Filter(
@SerializedName("category_id")
val categoryId: List<Int>,
@SerializedName("state")
val state: List<String>
)
data class Sort(
@SerializedName("type")
val type: String,
@SerializedName("value")
val value: String
)
}
通常 POST
方法的主体由改造中的 @Body
注释定义。尝试像下面这样使用 @Body
并在调用 getUniversitiesFilterSort
函数时,将 Filters
class 的实例作为参数传递。
interface UniversitiesApi {
@POST("universities-filter-sort")
suspend fun getUniversitiesFilterSort(
@Body args: Filters
): Call<University>
}
请帮我制作这种Body
参数的改装界面:
{
"filter": {
"category_id": [1, 2],
"state": ["kuala lumpur", "selangor"]
},
"sort": {
"type": "state",
"value": "ASC"
}
}
所以目前这是我的改装界面
@FormUrlEncoded
@POST("universities-filter-sort")
suspend fun getUniversitiesFilterSort(
@Field("filter") filter: Filters.Filter,
@Field("sort") sort: Filters.Sort
): Call<University>
这是我的 body 模型 class 至于参数
data class Filters(
@SerializedName("filter")
val filter: Filter,
@SerializedName("sort")
val sort: Sort
) {
data class Filter(
@SerializedName("category_id")
val categoryId: List<Int>,
@SerializedName("state")
val state: List<String>
)
data class Sort(
@SerializedName("type")
val type: String,
@SerializedName("value")
val value: String
)
}
通常 POST
方法的主体由改造中的 @Body
注释定义。尝试像下面这样使用 @Body
并在调用 getUniversitiesFilterSort
函数时,将 Filters
class 的实例作为参数传递。
interface UniversitiesApi {
@POST("universities-filter-sort")
suspend fun getUniversitiesFilterSort(
@Body args: Filters
): Call<University>
}