【问题标题】:How to pass multiple value in a single in retrofit request如何在一个改造请求中传递多个值
【发布时间】:2021-01-12 18:45:05
【问题描述】:

我在我的应用程序中使用 Retrofit2 和 RxJava。我必须传递与单个键对应的多个值。以下是我的请求网址

https://api.openweathermap.org/data/2.5/onecall?lat=28.46&lon=77.03&exclude=hourly,alerts,minutely&appid=01s

现在在上面的 URL 中有 exclude 键,其中传递了多个参数,如何在我的界面中添加这些参数。下面是我的界面。

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>

}

我怎样才能提出想要的请求?

【问题讨论】:

    标签: android kotlin retrofit2 rx-java2


    【解决方案1】:

    正如 One Call API 的 documentation 中的 exclude 参数部分所说,

    通过使用此参数,您可以从 API 响应中排除部分天气数据。它应该是一个逗号分隔的列表(没有空格)。

    所以它不是要求多个值,而是一个带有逗号分隔选项标签的字符串值,它们之间没有空格。只需将“hourly,alerts,minutely”放入字符串变量中,并通过您的界面传递该字符串,就像您在以下代码行中已有的一样,@Query("exclude") exclude:String,它应该可以工作:

    var excludeParamToPass = "hourly,alerts,minutely"
    

    来自同一 reference 的 API 示例:

    https://api.openweathermap.org/data/2.5/onecall?lat=33.441792&lon=-94.037689&exclude=hourly,daily&appid={API key}
    

    【讨论】:

      猜你喜欢
      • 2022-10-06
      • 2014-10-04
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多