Модификация вызова Android с одним дополнительным параметром - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу сделать такой вызов:

/api/basket/info?id={value}-{extra}$&id={value2}

На данный момент отправляем такие значения:

@GET("/api/basket/info") 
fun getInfo(@Query("id") value: List<String>)

И моя проблема в том, как я могу передать «дополнительные»"разделенный с" - "в запросе со значением" id ".

Вот когда я вызываю API.

    fun getBagInfo(value: List<String>? = null, extra:List<String>? = null){

      val response = api.getBagInfo(value).execute()   }

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Полагаю, самым простым вариантом в вашем случае будет использование POST вместо GET.Есть ли у вас возможность изменить api сервера?Проблема в том, что сервер не принимает список идентификаторов в запросе get.Потому что у него есть такой метод, как request.getParameter(id).Backend не знает, какой идентификатор.

0 голосов
/ 18 декабря 2018

Я ожидаю, что у вас есть метод, с помощью которого вы общаетесь с API.Я использовал java, но Вы можете конвертировать его в Kotlin.

public Call<Object> getBasketInfo(int value1, int[] extraValues, int value2) {
    if (extraValues.length == 0) {
        getBasketInfo(String.valueOf(value1), String.valueOf(value2));
    } else {
        StringBuilder sb = new StringBuilder();
        for (Integer in : extraValues) {
            sb.append("-").append(in);
        }
        getBasketInfo(value1 + sb.toString(), value2 + ""));
    }
}

Это вызовет:

/api/basket/info?id=1&id=3
/api/basket/info?id=1-2&id=3
/api/basket/info?id=1-2-3&id=3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...