Я пытаюсь реализовать регистрацию пользователей в моем приложении, используя Retrofit, но, тем не менее, получаю эту ошибку, не зная, что случилось, java.lang.IllegalStateException: ожидается BEGIN_OBJECT, но был BEGIN_ARRAY
Это ответ от почтальона
{
"isSuccessful": true,
"message": "successful",
"user": {
"name": "Jackline Jazz",
"email": "jackijazz@gmail.com",
"phone": "000000"
}
}
У меня есть два класса моделей: класс модели User
data class User(
val name: String,
val email:String,
val phone:String
)
и класс ответа при входе в систему
data class LoginResponse(
val isSuccessful:Boolean,
val message: String,
val user: List<User>
)
мой объект Модификации
object RetrofitClient {
private const val BASE_URL = "http://10.0.2.2:7000/"
val instance: RetrofitApi by lazy {
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
retrofit.create(RetrofitApi::class.java)
}
}
Модификация API
@FormUrlEncoded
@POST("users/register")
fun userRegister(
@Field("name") name: String,
@Field("email") email: String,
@Field("password") password: String,
@Field("confirmPassword") confirmPassword: String
): Call<LoginResponse>
и мой класс регистров
RetrofitClient.instance.userRegister(name, email, password, confirmPassword)
.enqueue(object : Callback<LoginResponse> {
override fun onFailure(call: Call<LoginResponse>, t: Throwable) {
Toast.makeText(applicationContext, t.message, Toast.LENGTH_LONG).show()`
}
override fun onResponse(call: Call<LoginResponse>, response: Response<LoginResponse>) {
if (response.body()?.isSuccessful!!){
val intent = Intent(applicationContext, MainActivity::class.java)
startActivity(intent)
}else{
Toast.makeText(applicationContext, response.body()?.message, Toast.LENGTH_LONG).show()
}
}
})
}
}
И, если возможно, кто-нибудь поможет мне реализовать сопрограммы Kotlin