#android #kotlin #retrofit2 #rx-java2
#Android #kotlin #retrofit2 #rx-java2
Вопрос:
Я использую Retrofit2 и RxJava в своем приложении. Я должен передать несколько значений, соответствующих одному ключу. Ниже приведен URL-адрес моего запроса
https://api.openweathermap.org/data/2.5/onecall?lat=28.46amp;lon=77.03amp;exclude=hourly,alerts,minutelyamp;appid=01s
Теперь в приведенном выше URL-адресе есть ключ исключения, в котором передается несколько параметров, как добавить их в мой интерфейс. Ниже приведен мой интерфейс.
ApiService.class
interface ApiService {
@GET("data/2.5/onecall")
fun getCurrenttemp(@Query("lat") lat:String,
@Query("lon") lon:String,
@Query("exclude") exclude:String,
@Query("appid") appid:String):Observable<Climate>
}
Как я могу сделать желаемый запрос?
Ответ №1:
Как exclude
говорится в части параметров в документации One Call API,
Используя этот параметр, вы можете исключить некоторые части данных о погоде из ответа API. Это должен быть список, разделенный запятыми (без пробелов).
Таким образом, он не запрашивает несколько значений, это скорее одно строковое значение с разделенными запятыми тегами опций без пробелов между ними. Просто поместите « hourly,alerts,minutely
» в строковую переменную и передайте эту строку, как у вас уже есть в следующей строке кода, @Query("exclude") exclude:String
, через ваш интерфейс, и она должна работать:
var excludeParamToPass = "hourly,alerts,minutely"
Один пример API из той же ссылки:
https://api.openweathermap.org/data/2.5/onecall?lat=33.441792amp;lon=-94.037689amp;exclude=hourly,dailyamp;appid={API key}