我想通过使用Kotlin中的Retrofit2 + SimpleXML从API获取XML数据并将其映射到Kotlin模型对象。但是,我从SimpleXML得到了以下错误消息。
以下是APIClient的内容。
我收到了HTTP状态码200和正确的XML数据,因此我认为我的模型对象声明存在问题。
这是获取的XML数据。org.simpleframework.xml.core.MethodException: 注释@org.simpleframework.xml.Element(data=false, name=, required=true, type=void)必须标记为设置或获取方法
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<result code="0">Success</result>
<token>XXXXXXXXXXXXXXXXXXXX</token>
<uid>4294967295</uid>
</response>
Kotlin模型对象如下:
@Root(name = "response")
public class User() {
@Element public var result: String? = null
@Element public var token: String? = null
@Element public var uid: String? = null
}
以下是APIClient的内容。
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)
}
我收到了HTTP状态码200和正确的XML数据,因此我认为我的模型对象声明存在问题。