Android Monhofit Post Type Data Data Wations Data Null NullAndroid

Форум для тех, кто программирует под Android
Anonymous
Android Monhofit Post Type Data Data Wations Data Null Null

Сообщение Anonymous »

Я пытаюсь передать модель данных серверу в Android, используя модернизацию для регистрации учетной записи пользователя. Когда я отправляю тип данных пользовательских данных на сервер через пост, я получаю проблему. Http 500 Указываю, что значения являются null. < /P>
Это тип данных, который я пытаюсь пройти < /p>

Код: Выделить всё

data class UserData(

@SerializedName("username")
val username : String,
@SerializedName("email")
val email : String,
@SerializedName("password")
val password : String
)
Моя модель для модернизации

Код: Выделить всё

object RetrofitHelper {
val baseUrl = "http:///api/include/"
fun getInstance(): Retrofit {
val httpLoggingInterceptor: HttpLoggingInterceptor = HttpLoggingInterceptor()
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY)

val okHttpClient = OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor)
.build()

val gson = GsonBuilder()
.setLenient().create()

return Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(okHttpClient)
.build()
}
}
Интерфейс API

Код: Выделить всё

    @POST("sol_register.php")
fun registerUser(@Body userdata : UserData) : Call
Действие для совершения звонка

Код: Выделить всё

val query = RetrofitHelper.getInstance().create(AccessApi::class.java)
Log.i("Values", event.userData.toString())
val call: Call = query.registerUser(event.userData)
call.enqueue(object : Callback {
override fun onFailure(call: Call, error: Throwable) {
Log.d("onFailure", error.message.toString())
}

override fun onResponse(call: Call, response: Response) {
val result = response.body()
Log.d("onResponse", response.code().toString())
result?.toString()?.let { Log.i("Result", it) }
}
})
< /code>
logcat правильно распечатывает значения userdata, но ошибка, которую я получаю от сервера, заключается в том, что все значения являются нулевыми. Следующая реализация, она отлично работает. < /p>
Изменение интерфейса API на: < /p>
    @FormUrlEncoded
@POST("sol_register.php")
fun registerUser(
@Field("username") username: String,
@Field("email") email: String,
@Field("password") password: String
): Call
< /code>
Затем измените способ выполнения вызова: < /p>
        val call: Call = query.registerUser(
event.userData.username,
event.userData.email,
event.userData.password
)
В чем может быть причина проблемы? Я бы предпочел попытаться передать тип данных вместо того, чтобы вводить каждое поле. (думаю о будущих реализациях)

Подробнее здесь: https://stackoverflow.com/questions/793 ... ta-is-null

Вернуться в «Android»