Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write retrofit query for array for get method?

I am handling

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

which is look like below url:

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

How I can make it look like value in array bracket, as below:

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

Any answer or suggestions appreciated.

like image 603
Axay Prajapati Avatar asked Feb 03 '26 10:02

Axay Prajapati


1 Answers

You can do that in three steps :

1- Use QueryMap instead of Query as follow:

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

2- Map your competition id list to Map<String,Int> as follow :

        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- Send map to callMatchDetails fun and you will make it look like follow :

https://baseurl.com/match-details/5-days?competition_id[0]=123&competition_id[1]=134&competition_id[2]=156
like image 75
Ibrahim Muhamad Avatar answered Feb 05 '26 22:02

Ibrahim Muhamad



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!