Retrofit2:如何从响应中获取价值并获得价值?科特林

时间:2019-09-12 21:10:14

标签: android kotlin retrofit

我收到服务器的以下回复:

[
 {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz"
  }
]

所以我想从服务器访问到我的android的响应的名称并进行Toast。所以我尝试了这个onResponse,但它什么也没显示:

override fun onResponse(call: retrofit2.Call<List<DriverModel>>,
                    response: Response<List<DriverModel>>) 
{

       if (response.body()?.isEmpty()!!) 
       {
            Toast.makeText(applicationContext, "The Response is empty", Toast.LENGTH_LONG).show()
       }else{

           Toast.makeText(applicationContext, response.body()?.name, Toast.LENGTH_LONG).show()
       }
 }

所以这个 Model

class DriverModel {

    @Expose
    @SerializedName("id")
    val id: Int = 0

    @Expose
    @SerializedName("name")
    val name: String = ""

    @Expose
    @SerializedName("username")
    val username: String = ""
}

和此 Api界面

interface ApiInterface {
   @GET("users")
   fun check( @Query("username") username: String ): Call<FakeUserModel>
}

1 个答案:

答案 0 :(得分:2)

response.body()返回一个列表。您可以访问如下名称: response.body()[0].name