You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin的Retrofit GET请求中避免使用编译时常量?

解决方案

你不需要用编译时常量拼接路径,Retrofit提供了@Path注解来处理动态路径参数,直接把植物ID作为方法参数传入即可。

修改你的接口如下:

interface ViewerPlantInterface {
    @GET("species/details/{speciesId}")
    fun getPlantData(
        @Path("speciesId") speciesId: Int,
        @Query("key") key: String = ApiConstants.API_KEY_PERENUAL
    ): Call<ViewerPlant>
}

关键说明:

  • 将路径中的固定常量替换为{speciesId}占位符,这个占位符名称要和@Path注解内的参数名完全一致
  • 在方法参数中添加@Path("speciesId") speciesId: Int,调用接口时直接传入用户选择的植物ID
  • @Query的API Key保留默认值,调用时无需额外传参

调用示例:如果要获取ID为123的植物信息,直接调用getPlantData(123),Retrofit会自动把占位符替换为对应ID,生成正确的请求URL:https://perenual.com/api/species/details/123?key=YOUR_API_KEY

这种方式无需逐个创建端点,不管有多少种植物都能动态适配。

内容的提问来源于stack exchange,提问作者ToxicFlame427

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:17:04