如何在Retrofit API调用中使用参数实现不同的接口查询需求
正确的Retrofit参数配置方案
你当前的写法存在两个核心问题:
- 需要传入的
Slytherin属于路径占位参数,不是?拼接的查询参数,不能用@Query注解 @Query("/")的配置不符合路径参数的传递规则,会导致请求地址拼接错误
修正后的代码实现
// 用{house}作为路径占位符标记参数位置 @GET("api/characters/house/{house}") suspend fun getAllHouse(@Path("house") search: String ): House
调用时直接传入对应学院名即可,比如传Slytherin时,Retrofit会自动拼接出你需要的目标请求地址:http://hp-api.herokuapp.com/api/characters/house/Slytherin
额外注意事项
- 如果该接口返回的是对应学院下的多个角色列表,建议将返回类型改为
List<House>避免解析报错 - 确保传入的学院名拼写、大小写和官方要求一致,避免请求404
内容的提问来源于stack exchange,提问作者zain mahmood
相关产品推荐
相关产品推荐

