Advertisement
Guest User

SignUpViewController

a guest
Jan 10th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 5.18 KB | None | 0 0
  1. class SignUpViewController: UIViewController, NSURLConnectionDelegate, XMLParserDelegate {
  2.    
  3.     var mutableData:NSMutableData = NSMutableData()
  4.     var currentElementName:NSString = ""
  5.    
  6.     @IBOutlet weak var userNameTextField: UITextField!
  7.     @IBOutlet weak var emailTextField: UITextField!
  8.     @IBOutlet weak var passwordTextField: UITextField!
  9.     @IBOutlet weak var confirmPasswordTextField: UITextField!
  10.    
  11.     override func viewDidLoad() {
  12.         super.viewDidLoad()
  13.  
  14.         // Do any additional setup after loading the view.
  15.     }
  16.  
  17.     override func didReceiveMemoryWarning() {
  18.         super.didReceiveMemoryWarning()
  19.         // Dispose of any resources that can be recreated.
  20.     }
  21.    
  22.     @IBAction func alreadyAccountButtonTapped(_ sender: Any) {
  23.        
  24.         self.dismiss(animated: true, completion: nil)
  25.     }
  26.    
  27.     @IBAction func signUpButtonTapped(_ sender: Any) {
  28.        
  29.         let username = userNameTextField.text
  30.         let email = emailTextField.text
  31.         let password = passwordTextField.text
  32.         let repeatPassword = confirmPasswordTextField.text
  33.        
  34.         if (username!.isEmpty || email!.isEmpty || password!.isEmpty || repeatPassword!.isEmpty ) {
  35.            
  36.             displayAlertMessage("Tutti i campi sono obbligatori!", "Attenzione!")
  37.         }
  38.        
  39.         if password != repeatPassword {
  40.            
  41.             displayAlertMessage("Le password inserite non coincidono!", "Attenzione!")
  42.            
  43.         }
  44.        
  45.         // invia i dati tramite HTTP POST
  46.        
  47.         let soapMessage = "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:urn='urn:registerUser'><soapenv:Header/><soapenv:Body><urn:registraUtente soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><username xsi:type='xsd:string'>\(username!)</username><email xsi:type='xsd:string'>\(email!)</email><password xsi:type='xsd:string'>\(password!)</password></urn:registraUtente></soapenv:Body></soapenv:Envelope>"
  48.        
  49.        
  50.         let urlString = "http://localhost:8090/StudentPORT_SOAPWS/register.php?wsdl"
  51.         let serviceURL = URL(string: urlString)
  52.         //var request = NSMutableURLRequest(url: serviceURL!)
  53.         var request = URLRequest(url: serviceURL!)
  54.         let messageLength = soapMessage.characters.count
  55.        
  56.         request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
  57.         //request.addValue("text/xml; charset=ISO-8859-1", forHTTPHeaderField: "Content-Type")
  58.         request.addValue(String(messageLength), forHTTPHeaderField: "Content-Length")
  59.         request.httpMethod = "POST"
  60.         request.httpBody = soapMessage.data(using: String.Encoding.utf8, allowLossyConversion: false)
  61.        
  62.         let session = URLSession.shared
  63.        
  64.         let task = session.dataTask(with: request){(data: Data?, response: URLResponse?, error: Error?) in
  65.            
  66.             DispatchQueue.main.async {
  67.                
  68.                 if error != nil {
  69.                     self.displayAlertMessage(error!.localizedDescription, "Errore")
  70.                     return
  71.                 }
  72.                
  73.                 if response != nil {
  74.                    
  75.                     self.mutableData.length = 0
  76.                    
  77.                    
  78.                 }
  79.            
  80.                 let mutableData : Void = NSMutableData.initialize()
  81.                
  82.                 let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
  83.                 self.mutableData.append(data!)
  84.                 self.displayAlertMessage(dataString as! String, "Alert")
  85.                 print(dataString)
  86.                 //let user_id = dataString["userID"] as? String
  87.                
  88.                
  89.                
  90.                
  91.             }
  92.            
  93.         }
  94.         task.resume()
  95.        
  96.         let xmlParser = XMLParser(data: mutableData as Data)
  97.         xmlParser.delegate = self
  98.         xmlParser.parse()
  99.         xmlParser.shouldResolveExternalEntities = true
  100.        
  101.                
  102.        
  103.        
  104.     }
  105.  
  106.    
  107.     func displayAlertMessage(_ userMessage: String, _ titleAlert: String){
  108.        
  109.         let myAlert = UIAlertController(title:titleAlert , message: userMessage, preferredStyle: UIAlertControllerStyle.alert)
  110.        
  111.         let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)
  112.        
  113.         myAlert.addAction(okAction)
  114.        
  115.         self.present(myAlert, animated: true, completion: nil)
  116.     }
  117.    
  118.     // NSXMLParserDelegate
  119.    
  120.    
  121.     func parser(parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
  122.         currentElementName = elementName as NSString
  123.     }
  124.    
  125.    
  126.     func parser(parser: XMLParser, foundCharacters string: String) {
  127.         if currentElementName == "registraUtenteResponse" {
  128.             self.displayAlertMessage(string, "Alert")
  129.         }
  130.     }
  131.  
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement