我不知道如何在下面的代码解析..
有人可以
有人可以
- 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)")
- }