Android 如何通过改造Kotlin发送带有表单URL编码的对象数组?

Android 如何通过改造Kotlin发送带有表单URL编码的对象数组?,android,kotlin,retrofit2,Android,Kotlin,Retrofit2,我想将经过编码的表单URL发送到服务器,但参数需要对象数组 我曾尝试使用改装后的FieldMap并传递数据,但当我尝试与邮递员联系时,得到了不同的响应 参数需要通过 { "allowedStatus": "submit", "filters": [ { "userId": "2" } ], "page": 1, "pageSize": 2 } 改造 @FormUrlEncoded @POST("ticket/status-list")

我想将经过编码的表单URL发送到服务器,但参数需要对象数组

我曾尝试使用改装后的FieldMap并传递数据,但当我尝试与邮递员联系时,得到了不同的响应

参数需要通过

{
  "allowedStatus": "submit",
  "filters": [
    {
      "userId": "2"
    }
  ],
  "page": 1,
  "pageSize": 2
}
改造

@FormUrlEncoded
    @POST("ticket/status-list")
    fun getTicketStatusList(
        @Field("allowedStatus") allowedStatus: String,
        @FieldMap filters: HashMap<String, String>,
        @Field("page") page: Int,
        @Field("pageSize") pageSize: Int
    ): Observable<Response<TicketListModel>>
@FormUrlEncoded
@POST(“票证/状态列表”)
有趣的getTicketStatusList(
@字段(“allowedStatus”)allowedStatus:字符串,
@FieldMap筛选器:HashMap,
@字段(“页面”)页面:Int,
@字段(“页面大小”)页面大小:Int
):可见
哈希映射

val filters = HashMap<String, String>()
        filters["userId"] = "1"
        Log.e("fieldMap", filters.toString())
        getTicketStatusList("monitoring", filters, 1, 5)
val filters=HashMap()
筛选器[“用户ID”]=“1”
Log.e(“fieldMap”,filters.toString())
getTicketStatusList(“监控”,过滤器,1,5)
结果我得到{},响应为200

请像这样尝试:

val filters = HashMap<String, RequestBody>()
filters.put("userId", toRequestBody("2"))
getTicketStatusList("monitoring", filters, 1, 5)
尝试以下方法:

data class Filters(var userId: String = "")

data class MyRequest(

        var allowedStatus: String = "",
        var filters: ArrayList<Filters>? = null,
        var page: Int = 0,
        var pageSize: Int = 0

        )

@POST("ticket/status-list")
fun getTicketStatusList(@Body request: MyRequest): Observable<Response<TicketListModel>>
数据类筛选器(var userId:String=”“)
数据类MyRequest(
var allowedStatus:String=“”,
变量筛选器:ArrayList?=null,
变量页:Int=0,
变量pageSize:Int=0
)
@POST(“票证/状态列表”)
fun getTicketStatusList(@Body request:MyRequest):可观察

请同时尝试“@FieldMap(encoded=true)filters:HashMap”,仍然是相同的响应首先尝试将“Observable”更改为“Observable”,如果它不起作用,那么尝试使用map而不是像“@FieldMap(encoded=true)filters:map”这样的HashMap,过滤器数组中会有不同的对象还是相同的对象?
fun toRequestBody(value: String): RequestBody {
        return RequestBody.create(MediaType.parse("text/plain"), value)
}
data class Filters(var userId: String = "")

data class MyRequest(

        var allowedStatus: String = "",
        var filters: ArrayList<Filters>? = null,
        var page: Int = 0,
        var pageSize: Int = 0

        )

@POST("ticket/status-list")
fun getTicketStatusList(@Body request: MyRequest): Observable<Response<TicketListModel>>