【问题标题】:Retrofit2 GET request with Id带有 ID 的 Retrofit2 GET 请求
【发布时间】:2021-12-19 01:08:00
【问题描述】:

我正在尝试在我的 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 在中间,所以像我一样制作原始字符串并不是一个好主意。如果有人能提出不同的建议,我将不胜感激

【问题讨论】:

    标签: android retrofit


    【解决方案1】:

    您正在使用@Query("id"),它将值作为查询广告。

    从你的例子中,我可以看出你想使用@Path

    你可以这样使用它

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

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

    【讨论】:

    • 好吧!我想过这个问题,但是我怎样才能将剩余的端点附加到同一个查询中(信息?includeNutrition=false”)。非常感谢您的宝贵时间!
    • 嗨,伙计!最后我想出了怎么做!我使用了您向我展示的内容和一个简单的 @QueryMap 作为第二个参数。非常感谢西班牙!祝你一切顺利
    • 嘿@Robert 很高兴它成功了,如果您发现我的回答有用,请将其标记为答案;)
    • 完成@Mustafa!!我是第一次在这里问。我不知道:)
    • @Robert 不用担心,谢谢 :)
    猜你喜欢
    • 2017-01-14
    • 2020-08-14
    • 2017-04-14
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多