我需要在Swift中发出SOAP API请求并检索响应。我是SOAP API和Swift的新手。我有一个API路径,API方法和输入参数。输出是JSON。
API路径:http://testapp.Lzoom.com/V3/UserProfile_V3.asmx API方法:Check_MobileFlag_V3()
输入参数:
SessionId:String
令牌:字符串
TimeStamp:String
输出参数:JSON
结果:整数
1:强制用户更改手机
-100:内部错误
-98:用户凭据错误,退出用户
答案 0 :(得分:1)
我从您的问题中了解到,您不需要完整的soap框架来调用和处理响应。在这种情况下,您应该使用简单的xml解析器并构建自己的soap xml调用。
我会建议您使用cocoapods并将AEXML集成到您的项目中
这是一个简单的xml soap格式来进行调用
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<m:Trans xmlns:m="http://www.w3schools.com/transaction/" soap:mustUnderstand="1">234</m:Trans>
</soap:Header>
<soap:Body>
<m:GetStockPrice>
<m:StockName>AAPL</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
它如何用AEXML构建它
let soapRequest = AEXMLDocument()
let attributes = ["xmlns:xsi" : "http://www.w3.org/2001/XMLSchema-instance", "xmlns:xsd" : "http://www.w3.org/2001/XMLSchema"]
let envelope = soapRequest.addChild(name: "soap:Envelope", attributes: attributes)
let header = envelope.addChild(name: "soap:Header")
let body = envelope.addChild(name: "soap:Body")
header.addChild(name: "m:Trans", value: "234", attributes: ["xmlns:m" : "http://www.w3schools.com/transaction/", "soap:mustUnderstand" : "1"])
let getStockPrice = body.addChild(name: "m:GetStockPrice")
getStockPrice.addChild(name: "m:StockName", value: "AAPL")
println(soapRequest.xmlString)
在准备肥皂电话之后,您可以使用任何网络库