Desidero recuperare i dati XML dall'API e mapparlo all'oggetto del modello Kotlin utilizzando Retrofit2 + SimpleXML in Kotlin.Retrofit2 + SimpleXML in Kotlin: MethodException: L'annotazione deve contrassegnare un metodo set o get
Tuttavia, ho ricevuto il seguente messaggio di errore da SimpleXML.
org.simpleframework.xml.core.MethodException: Annotazione @ org.simpleframework.xml.Element (dati = false, name =, richiesto = true, type = void) deve segnare un set o ottenere metodo
si tratta di dati XML recuperati
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<result code="0">Success</result>
<token>XXXXXXXXXXXXXXXXXXXX</token>
<uid>4294967295</uid>
</response>
Kotlin oggetto del modello è al di sotto
@Root(name = "response")
public class User() {
@Element public var result: String? = null
@Element public var token: String? = null
@Element public var uid: String? = null
}
e APIClient sono i seguenti.
interface MyService {
@GET("/testLogin.xml")
fun getUser(): Call<User>
}
val retrofit = Retrofit.Builder()
.baseUrl(baseURL)
.addConverterFactory(SimpleXmlConverterFactory.create())
.build()
val call = retrofit.create(MyService::class.java).getUser()
call.enqueue(object: Callback<User> {
override fun onResponse(p0: Call<User>?, response: Response<User>?) {
val response = response?.body()
}
override fun onFailure(p0: Call<User>?, t: Throwable?) {
Log.e("APIClient", t?.message)
}
Ho ottenuto il codice di stato HTTP 200 e corretto i dati XML. Quindi penso che la mia dichiarazione di oggetto modello sia un problema.
Eventuali duplicati di [Kotlin classe di dati + bean convalida JSR 303] (http://stackoverflow.com/questions/35847763/kotlin-data-class-bean-validation-jsr-303) –