Привет, я пытаюсь сделать запрос на мыло. Я использую Retrofit
и SimpleXmlFactory
в качестве адаптера. Я написал приведенный ниже класс данных для запроса мыла. Но при выполнении запроса я получаю такую ошибку:
org.simpleframework.xml.core.ConstructorException: Parameter 'soap:Body' does not have a match in class
Запрос на мыло:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://myserver.com/webservices/">
<soap:Header/>
<soap:Body>
<web:GetAvailablePasses>
<web:securityToken>*****</web:securityToken>
<web:userName>*****</web:userName>
<web:password>*****</web:password>
</web:GetAvailablePasses>
</soap:Body>
</soap:Envelope>
Это мой класс данных:
@Root(name = "soap:Envelope")
data class GetAvailablePassesRequest(
@Element(name = "soap:Body", required = false)
val body: MyRequest
)
@Root(name = "soap:Body", strict = false)
data class MyRequest(
@Element(name = "web:GetAvailablePasses")
val getAvailablePasses: GetAvailablePasses
)
@Root(name = "web:GetAvailablePasses")
data class GetAvailablePasses(
@Element(name = "web:securityToken")
var securityToken: String,
@Element(name = "web:userName")
var userName: String,
@Element(name = "web:password")
var password: String
)
Это мой интерфейс ApiService:
@POST("FlashPassAPI.asmx")
fun getAvailablePasses(@Body request: GetAvailablePassesRequest): Single<GetAvailablePassesResponse>
Что я делаю не так?