2016-10-25 10 views
0

私はswift 2.1でアプリに接続したい 私はボタンlogInを持っており、私はloginButton関数を作っています。 URL:localhost/connexion/login/password 私は自分のURLを回復したいと思います。ユーザーがデータベースにいればOKです。 しかし、私は本当に素早く穏やかではない、私はこの言語の初心者です。 だから私のコードがあります:ログイン接続、メソッド

@IBAction func loginButton(sender: AnyObject) { 
     NSLog("login ok") 
     let _login = loginText.text 
     let _password = passwordText.text 

     if(_login!.isEmpty || _password!.isEmpty){ 
      var alert:UIAlertView = UIAlertView() 
      alert.title = "Error" 
      alert.message = "Entrez vos identifiants" 
      alert.delegate = self 
      alert.addButtonWithTitle("OK") 
      alert.show() 
     } else{ 
      let request = NSMutableURLRequest(URL: NSURL(string: "http://localhost:8888/connexion/"+_login!+"/"+_password!)!) 
      request.HTTPMethod = "GET" 
      let postString = "login=\(_login!)&pass=\(_password)" 
      let session = NSURLSession.sharedSession() 
      let task = session.dataTaskWithRequest(request) 
      task.resume(); 
     } 
    } 

私はHow to make an HTTP request in Swift? 前にこれを従ってきたが、それは動作しません。 私はたくさんのことを試しましたが、実際に何が起こったのか理解せずに、非常に良い説明で素晴らしいチュートリアルを見つけることはできません。誰かが私にそれをどうやって説明することができるなら、私はとても幸せになるでしょう!

答えて

0

私は交換し、サーバーにデータを送信するためにあなたが「POST」リクエストを作成し、データに

let url = "http://localhost:8888/connexion/login=\(_login)&pass=\(_password)" 
    let urlString = url.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())! 
    let request = NSURLRequest(URL: NSURL(string: urlString)!) 

    let loginTask = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) in 

     guard let data = data, let _ = response where error == nil else { 
      print("error") 
      return 
     } 

     /*do { 
      let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 
      print(json) 
     } catch let error as NSError { 
      print("json error: \(error.localizedDescription)") 
     }*/ 
    if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {   // check for http errors 
     print("statusCode should be 200, but is \(httpStatus.statusCode)") 
     print("response = \(response)") 
    } 

    let responseString = String(data: data!, encoding:NSUTF8StringEncoding) 
    print("responseString = \(responseString)") 
    }) 
    loginTask.resume() 
+0

で他に部品を交換する「GET」使用のための

@IBAction func loginButton(sender: AnyObject) { NSLog("login ok") let _login = loginText.text let _password = passwordText.text if(_login.isEmpty || _password.isEmpty){ var alert:UIAlertView = UIAlertView() alert.title = "Error" alert.message = "Entrez vos identifiants" alert.delegate = self alert.addButtonWithTitle("OK") alert.show() } else{ let request = NSMutableURLRequest(URL: NSURL(string: "http://localhost:8888/connexion/login")!) request.HTTPMethod = "POST" let params = ["login": _login, "pass": _password] do { let data = try NSJSONSerialization.dataWithJSONObject(params, options: .PrettyPrinted) request.HTTPBody = data } catch let error as NSError { print("json error: \(error.localizedDescription)") } let loginTask = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) in guard let data = data, let _ = response where error == nil else { print("error") return } do { let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) print(json) } catch let error as NSError { print("json error: \(error.localizedDescription)") } }) loginTask.resume() } } 

を送信するためにNSURLSession APIを使用すべきだと思います他の人はあなたですが、私はすでにこれを試していますが、私はこのエラーがあります: –

+0

jsonエラー:正しい形式でないため、データを読み込めませんでした。 –

+0

あなたのログイン要求に対する応答はjson形式ではないと思いますが、このリンクをチェックしてくださいhttp://stackoverflow.com/questions/37825284/the-data-couldn-t-be-read-because-it-isn-t -in-the-correct-format – suhit

関連する問題