'Retrofit2 post request is successful but I'm not able to retrieve token from response body
So I'm trying to making a login(post) request to an API (https://reqres.in/api/login) with retrofit 2. The connection was successful as the response code is 200, when I did the same on Postman I received a response which contains a token string which I want but in android studio when I log the response body it gives different output. I am new to kotlin so I think I must be doing something wrong while retrieving response.
Output I'm receiving:
Response{protocol=h2, code=200, message=, url=https://reqres.in/api/login} 
Output I want (token field)
{
    "token": "QpwL5tke4Pnpja7X4"
}
Retrofit Builder
val retrofit = Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl(apiUrl)
                .build()
val api : reqresAPI = retrofit.create(reqresAPI::class.java)
API Interface
interface reqresAPI {
    // FOR REFERENCE
    // https://reqres.in/api/login
    // ANNOTATE WITH POST TO SEND DATA
    @POST(value = "login")
    fun sendData(
          @Body  user: User
    ): Call<ResponseModel> // CALL IS USED TO MAKE AN API CALL
}
Response Model
class ResponseModel{
    val token : String = ""
        get() = field
}
User model with 2 parameters email and password
class User (
    val email :String,
    val password :String
)
Calling API
 val call = api.sendData(user)
                call.enqueue(object : Callback<ResponseModel>{
                    override fun onResponse(call: Call<ResponseModel>, response: Response<ResponseModel>) {
                        Log.d("LOGGER", response.toString())
                    }
                    override fun onFailure(call: Call<ResponseModel>, t: Throwable) {
                        Log.d("LOGGER", "ERROR "+t.message.toString())
                    }
                })
Solution 1:[1]
Please change this
class ResponseModel{
    val token : String = ""
        get() = field
}
to this
class ResponseModel{
    @SerializedName("token")
    val token : String
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | 
