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

Retrofit拼接Query参数时URL同时出现?和&符号如何解决?

Retrofit 请求URL多余&符号修复方案

问题原因

你的@GET注解配置的路径末尾手动添加了无参数跟随的?符号。Retrofit拼接@Query参数的规则为:若路径已存在?,后续所有查询参数统一用&前缀拼接,因此直接生成了?&的异常格式。

修复方案

直接删除@GET路径末尾多余的?即可,Retrofit会自动处理查询参数的拼接逻辑:存在@Query参数时自动补?,多参数自动用&分隔,不会生成多余符号。
修复后的代码示例:

@GET("country/state/select-list-items")
suspend fun fetchStates(@Query("countryId") id: Int): Response<List<ServerState>>

补充说明

如果路径需要携带固定查询参数,直接写在路径内即可,不需要额外在末尾加?,示例:

// 带固定参数的正确写法
@GET("country/state/select-list-items?fixedType=1")
suspend fun fetchStates(@Query("countryId") id: Int): Response<List<ServerState>>

上述写法会自动生成合法URL:https://devipapi.octavehi.com/api/country/state/select-list-items?fixedType=1&countryId=236

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:36:06