我有很多课程,其中包含我想发送给服务器的数据&我想基于类生成动态soapMessage我该怎么做?
我使用下面的函数来获取简单消息的soapMessage,
func generateSoapMsgBody<T>(a: T)->String{
let classObject = a
//to get class name
var className=reflect(classObject).summary.componentsSeparatedByString(".").last!
var test = GetAirports()
var opTag = "<\(className)>"
var count = reflect(classObject).count
for var index = 0;index<count ;++index{
var varName = reflect(classObject)[index].0
var value = reflect(classObject)[index].1.value
opTag += "<\(varName)>\(value)</\(varName)>"
}
opTag += "</\(className)>"
}
如何使用嵌套数组生成复杂类型的消息&amp;嵌套类。
答案 0 :(得分:0)
说实话,使用SOAP Web API,我发现最简单的做法如下:
例如,如果项目文件中包含以下XML:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop ...>
<soap:Body>
<A>%@</A>
<B>%@</B>
</soap:Body>
</soap:Envelop>
然后您使用NSBundle
和pathForResource
加载它,并在从资源中检索NSString
后,使用.format
替换%@
中的{{1}}资源与您的类变量。
这为您提供了POST到SOAP服务所需的字符串。
我发现这是最灵活,最简单的单元测试,最简单的方法是在使用C#/ wsdl / soap代理生成器之外使用SOAP服务。