首页 > 解决方案 > 带有 ID 的 Retrofit2 GET 请求

问题描述

我正在尝试在我的 android 项目中提出请求。网址是这个

“https://api.spoonacular.com/recipes/716429/information?includeNutrition=false”

我正在使用改造 2,但我不知道如何使它工作。

这是我试图做的。

我得到一个食谱的 id 并调用这个函数来传递 id。

 fun applyQueryById(recipeId: Int): String{
   val  searchByIdQuery = "${recipeId}/information?includeNutrition=false&apiKey=${API_KEY}"
    return searchByIdQuery
}

GET请求就是这个

   @GET("/recipes/")
suspend fun getRecipeById(
    @Query("id") searchById:String
):Response<PersonalizedRecipeResult>

我认为因为 id 在中间,所以像我一样制作原始字符串不是一个好主意。如果有人可以提出不同的建议,我将不胜感激

标签: androidretrofit

解决方案


您正在使用@Query("id")which 会将值作为查询进行广告。

从您的示例中,我可以看到您想使用@Path

你可以像这样使用它

   @GET("/recipes/{id}")
   suspend fun getRecipeById(
      @Path("id") searchById:String
   ):Response<PersonalizedRecipeResult>

通过这种方式,searchById{id}在您的示例调用中替换为


推荐阅读