登录连接,方法 Get swift with API

Login Connection, method Get swift with API

我想在 swift 2.1 的应用程序中连接 我有一个登录按钮,我创建了一个函数 loginButton。 我想恢复我的 url:localhost/connexion/login/password 然后我想说如果用户在数据库中就可以了! 但我不是很了解swift,我是这门语言的初学者。 所以有我的代码:

@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();
        }
    }

我之前关注过这个 但它不起作用。 我尝试了很多东西,但并没有真正理解发生了什么,而且我没有找到一个很好的解释很好的教程。如果有人能告诉我怎么做,我会很高兴!

我认为要将数据发送到服务器,您应该创建一个 "POST" 请求并使用 NSURLSession API 发送数据

@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()
        }
    }

用于使用 "GET" 将其他部分替换为

 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()