【发布时间】:2019-03-26 06:45:50
【问题描述】:
您好,我正在尝试提出肥皂请求。我使用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>
我做错了什么?
【问题讨论】:
-
我试过了,但没有解决问题。 @SohelS9
标签: android soap kotlin retrofit2 simple-framework