我在我的应用程序中调用了一个肥皂服务。我从服务器以 JSON 格式收到此响应
{
"CustomerName":"Muneer Ahmad/ Ejaz Ahmad (User) ",
"IsCorporate":false,
"ID":48,
"Name":"Muneer Ahmad/ Ejaz Ahmad (User) ",
"GroupID":null,
"GroupName":null,
"CustomerID":48
}
我已经尝试过在线教程建议的内容,但我无法解析数据。它给我的错误是“字符 0 周围的值无效”。我的代码是这个
let is_URL: String = "http://labs2.unitedtracker.com/WTService.asmx?op=GetTerminalNumber"
let lobj_Request = NSMutableURLRequest(url: NSURL(string: is_URL)! as URL)
let session = URLSession.shared
lobj_Request.httpMethod = "POST"
lobj_Request.httpBody = is_SoapMessage.data(using: String.Encoding.utf8)
lobj_Request.addValue("labs2.unitedtracker.com", forHTTPHeaderField: "Host")
lobj_Request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
lobj_Request.addValue(String(is_SoapMessage.characters.count), forHTTPHeaderField: "Content-Length")
lobj_Request.addValue("http://tempuri.org/GetTerminalNumber", forHTTPHeaderField: "SOAPAction")
let task = session.dataTask(with: lobj_Request as URLRequest, completionHandler: {data, response, error -> Void in
do {
if let data = data,
let json = try JSONSerialization.jsonObject(with: data) as? [String: Any],
let customerID = json["CustomerID"] as? [[String: Any]] {
print(customerID)
}
} catch {
print("Error deserializing JSON: \(error)")
}
if error != nil
{
print("Error: " + String(describing: error))
}
})
task.resume()
任何人都可以建议我我在做什么错。应该如何解析来自 Soap Service 的此类 JSON 响应。
这是来自我的服务器的完整响应。
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetAuthenticateUserResponse xmlns="http://tempuri.org/"><GetAuthenticateUserResult>[{"CustomerName":"Muneer Ahmad/ Ejaz Ahmad (User) ","IsCorporate":false,"ID":48,"Name":"Muneer Ahmad/ Ejaz Ahmad (User) ","GroupID":null,"GroupName":null,"CustomerID":48}]</GetAuthenticateUserResult></GetAuthenticateUserResponse></soap:Body></soap:Envelope>
lobj_Request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
你如何保证服务器将json
作为响应返回?似乎它将text/xml
作为响应返回。
关于 JSON 解析,我建议使用SwiftyJSON。
多年前,我使用了一个soap客户端引擎,它会解析wsdl
为objective-c
代码。今天,也许一些工具可以帮助您生成Swift
代码wsdl
以便与soap服务器进行通信。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句