@POST请求使用Retrofit和Kotlin



当我尝试POST邮差一切工作正常:

文章https://trackapi.nutritionix.com/v2/natural/nutrients

Content-Type : application/json
x-app-id : *******
x-app-key : *******
x-remote-user-id : 0
身体

{
"query":"carrot"
}

结果

{
"foods": [
{
"food_name": "carrot",
"brand_name": null,
"serving_qty": 1,
"serving_unit": "carrot",
"serving_weight_grams": 46,
"nf_calories": 16.1,
"nf_total_fat": 0.08, .........

但是,当我在我的应用程序中尝试这个时,我有空响应。我尝试了两种不同的方法,但不幸的是没有结果。

:

@Headers(
"Content-Type: application/json",
"x-app-id: $NUTRITIONIX_APPLICATION_ID",
"x-app-key: $NUTRITIONIX_API_KEY",
"x-remote-user-id: 0",
)
@POST("v2/natural/nutrients")
suspend fun pushFoodNutrients(
@Body query: String
): Response<FoodNutrientsResponse>

第二:

@FormUrlEncoded
@Headers(
"Content-Type: application/json",
"x-app-id: $NUTRITIONIX_APPLICATION_ID",
"x-app-key: $NUTRITIONIX_API_KEY",
"x-remote-user-id: 0",
)
@POST("v2/natural/nutrients")
suspend fun pushFoodNutrientsTest(
@Field("query") query: String
): Response<FoodNutrientsResponse>

我错在哪里?我在网上搜了一整天,但什么也没找到。

于是,我找到了解决办法。

这是好的,但有一个变化。

@Headers(
"Content-Type: application/json",
"x-app-id: $NUTRITIONIX_APPLICATION_ID",
"x-app-key: $NUTRITIONIX_API_KEY",
"x-remote-user-id: 0",
)
@POST("v2/natural/nutrients")
suspend fun pushFoodNutrients(
@Body postModel: PostModel      // what I have changed
): Response<FoodNutrientsResponse>

我创建了一个对象PostModel,其中包含一个字段查询,如下所示:

data class PostModel(
val query: String
)

之后一切正常。

相关内容

  • 没有找到相关文章

最新更新