我不知道如何在下面的代码解析..
有人可以
有人可以
func callService(usr: String,pwdCode: String) { let url = NSURL(string: "http://inspect.dev.cbre.eu/SyncServices/api/jobmanagement/PlusContactAuthenticationPost") var xmlParse:NSString = "" var data : NSData! let request = NSMutableURLRequest(URL: url!) request.setValue("application/json; charset=utf-8",forHTTPHeaderField: "Content-Type") request.HTTPMethod = "POST" let dictionary = ["email": usr,"userPwd": pwdCode] var error: NSError? if let body = NSJSONSerialization.dataWithJSONObject(dictionary,options: nil,error: &error) { request.HTTPBody = body } else { println("JSON error: \(error)") } let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data,response,error) in println(NSString(data: data,encoding: NSUTF8StringEncoding)) // xmlParse=NSString(data: data,encoding: NSUTF8StringEncoding)! // let data = (xmlParse as NSString).dataUsingEncoding(NSUTF8StringEncoding) // NSXMLParser(data : NSData) // xmlParse=NSString(data: data,encoding: NSUTF8StringEncoding)! // xmlParse=response // println(xmlParse) } task.resume() }
您应该在请求的完成处理程序中使用NSXMLParser:
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data,error) in if data == nil { println("dataTaskWithRequest error: \(error)") return } let parser = NSXMLParser(data: data) parser.delegate = self parser.parse() // you can now check the value of the `success` variable here } task.resume() // but obvIoUsly don't try to use it here here
显然,上述假定您(a)定义了您的视图控制器以符合NSXMLParserDelegate和(b)已实现NSXMLParserDelegate方法,例如就像是:
var elementValue: String? var success = false func parser(parser: NSXMLParser,didStartElement elementName: String,namespaceURI: String?,qualifiedName qName: String?,attributes attributeDict: [NSObject : AnyObject]) { if elementName == "success" { elementValue = String() } } func parser(parser: NSXMLParser,foundCharacters string: String?) { if elementValue != nil { elementValue! += string } } func parser(parser: NSXMLParser,didEndElement elementName: String,qualifiedName qName: String?) { if elementName == "success" { if elementValue == "true" { success = true } elementValue = nil } } func parser(parser: NSXMLParser,parseErrorOccurred parseError: NSError) { println("parseErrorOccurred: \(parseError)") }