java - 如何为 get 方法编写数组的改造查询?

标签 java android kotlin retrofit2

我在处理

@GET("match-details/5-days")
fun callMatchDetails(@Query("competition_id[]", encoded = true) competitionIdList: List<String>
): Call<MatchDetailResponseModel>?

它看起来像下面的 url:

https://baseurl.com/match-details/5-days?competition_id[]=1588&competition_id[]=1589&competition_id[]=1592

如何让它看起来像数组括号中的值,如下所示:

https://baseurl.com/match-details/5-days?competition_id[0]=1588&competition_id[1]=1589&competition_id[2]=1592

感谢任何回答或建议。

最佳答案

您可以分三步完成:

1- 使用 QueryMap 而不是 Query 如下:

 @GET("match-details/5-days")
    fun callMatchDetails(
        @QueryMap(encoded = true) map: Map<String, Int>
    ): Call<MatchDetailResponseModel>?

2- 将您的比赛 ID 列表映射到 Map,如下所示:

        val ids = mutableListOf(123, 134, 156)
        val map = mutableMapOf<String,Int>()
        ids.forEachIndexed { index, id ->
            map["competition_id[$index]"] = id
        }
//mutableMapOf: {competition_id[0]=123, competition_id[1]=134, competition_id[2]=156}

3- 将 map 发送到 callMatchDetails fun,您将使它看起来像下面这样:

https://baseurl.com/match-details/5-days?competition_id[0]=123&competition_id[1]=134&competition_id[2]=156

关于java - 如何为 get 方法编写数组的改造查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64717879/

相关文章:

android - 无法使用 ViewModelFactory 实例化我的 ViewModel

java - AWS Lambda Java/Kotlin 向 SQS 发送消息

java - Neo4j Spring SocketTimeoutError 错误

java - 使用线程在数组中搜索元素

android - 处理 EditText 焦点的事件

android - 如何使用 Volley 解析 JSON

android - 发送 APK 文件 android

android - Kotlin Gradle 依赖项中的 "implementation"是什么?

java - 为什么 Java 的 TreeMap 不允许初始大小?

java - JTable-绘制单元格中的内容(文本)