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

Android端Retrofit2向Spring REST服务传递路径参数失败求助

问题解决:Retrofit2 与 Spring 路径参数不匹配的问题

嘿,我一眼就看出问题所在啦!

你的 Spring 接口里用的是路径变量(Path Variables)——也就是 URL 路径里的{branchID}和{docID},这类参数是直接嵌入到 URL 路径中的。但你在 Retrofit 代码里误用了@Query注解,这个注解是用来生成查询参数的(也就是 URL 末尾?key=value形式的参数),两者完全不匹配,所以请求自然无法被 Spring 正确解析。

正确的 Retrofit 写法

把@Query换成@Path注解就可以了,它专门用来处理路径变量:

@GET("/allData/{branchID}/{docID}")
Call<List<User>> getUserData(
    @Path("branchID") int branchID,
    @Path("docID") Long docID
);

额外说明

  • 确保@Path括号里的名称和 URL 占位符{}里的名称完全一致(比如这里的branchID和docID),如果参数名和占位符名不同,你可以显式指定,比如@Path("branch_id") int branchId。
  • 这样修改后,Retrofit 会自动把参数值替换到路径占位符中,生成类似/allData/101/10001的请求,完美匹配你的 Spring 接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:17:48