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

如何在Retrofit中为URL查询参数正确使用@Query注解?

问题解决:Retrofit正确传递查询参数

你的问题出在混淆了**路径参数(@Path)和查询参数(@Query)**的用法:id_ruta是URL中?后的查询参数,不是路径里的占位符,所以用@Path注解不会生效。

正确实现方式

方式一:固定key参数,仅传递id_ruta

把固定的key直接拼接在@GET的路径后,用@Query传递动态的id_ruta:

@GET("Ruta/get_pax_ruta?key=5786938888")
suspend fun getRouteDetails(
    @Query("id_ruta") idRuta: String
): RouteDetailsModel

方式二:key也设为可配置参数(带默认值)

如果后续key可能需要调整,可以把它也设为@Query参数并指定默认值:

@GET("Ruta/get_pax_ruta")
suspend fun getRouteDetails(
    @Query("id_ruta") idRuta: String,
    @Query("key") key: String = "5786938888"
): RouteDetailsModel

原理说明

  • @Path:用于替换URL路径中的占位符(例如Ruta/{id}/get_pax里的{id})
  • @Query:用于生成URL中?后的查询参数(即key=value形式的参数)
    你之前的写法把查询参数当成路径参数处理,导致Retrofit无法正确解析参数,所以请求不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:20:47