调用Coin Gecko API时URL路径参数解析异常问题求助
问题解决:CoinGecko API 请求路径参数错误
问题根源
你当前代码误用了@Query注解处理路径里的{id}占位符,导致Retrofit没有替换路径中的{id},反而把id当作查询参数拼在URL末尾,最终生成了错误的请求地址。
修复代码
把@Query("id")替换为@Path("id"),Retrofit就会正确将传入的id值替换到路径的{id}位置:
@GET("/api/v3/coins/{id}") suspend fun getCoinsDetail( @Path("id") id: String? ) : Response<CoinsDetailResponse>
额外说明
@Path专门用于替换URL路径中的占位符(比如{id}),适配这种REST风格的路径参数场景;@Query是用来添加URL末尾的查询参数(格式如?key=value),这里完全不适用;- 用
@Body报错是因为GET请求不支持携带请求体,而且CoinGecko的这个接口只需要通过路径参数传递币种ID,根本不需要请求体。
内容的提问来源于stack exchange,提问作者hgokumus35
相关产品推荐
相关产品推荐

