所以我试图作出登录(后)请求API(https://reqres.in/api/login)与改造2.连接是成功的,因为响应代码是200,当我做了同样的Postman我收到一个响应,其中包含一个令牌字符串,我想要,但在android工作室当我日志的响应体它给出了不同的输出.我是新来的kotlin所以我想我一定是做错了什么,而检索响应。
我收到的输出:
Response{protocol=h2, code=200, message=, url=https://reqres.in/api/login}
我想要的输出(令牌字段)
{
"token": "QpwL5tke4Pnpja7X4"
}
改造生成器
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(apiUrl)
.build()
val api : reqresAPI = retrofit.create(reqresAPI::class.java)
API接口
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
}
响应模型
class ResponseModel{
val token : String = ""
get() = field
}
具有2个参数电子邮件和密码的用户模型
class User (
val email :String,
val password :String
)
呼叫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())
}
})
请换一下这个
class ResponseModel{
val token : String = ""
get() = field
}
对这个
class ResponseModel{
@SerializedName("token")
val token : String
}