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

如何在Retrofit请求中设置URL静态部分并解决查询参数配置报错

错误原因

java.lang.IllegalArgumentException: URL query string "age={Age}&api_key=randomkey" must not have replace block. For dynamic query parameters use @Query.

这个报错核心规则是:Retrofit 的 @GET 注解中,{} 占位符仅允许用于路径段(对应 @Path 注解的参数),不能用于查询参数部分。
你已经通过 @Query("age") 声明了动态查询参数,Retrofit 会自动将参数值拼接到最终请求的查询串中,不需要手动在URL里写 age={Age} 占位符。

修正后的代码
@GET("/users/profile/{User}?api_key=randomkey")
suspend fun enableVoice(
        @Path("User") user: String?,
        @Query("age") age: String?
): Response<UserResponse?>
补充说明
  • 固定查询参数可以直接写在 @GET 的URL中,不需要额外处理,比如示例里的 api_key=randomkey
  • 如果 api_key 后续需要改为动态参数,删掉URL里的对应配置,新增 @Query("api_key") apiKey: String 参数即可
  • 如果有大量动态查询参数,可使用 @QueryMap 注解传入Map类型参数,批量拼接查询串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:54:04