Swift 2.0 HTML POST(格式不正确)


Swift 2.0 HTML POST (Incorrect format)

我正在尝试在我的iOS应用程序上登录/注册以工作。除了 Swift 2.0 之外,我还使用 mySQL 和 PHP。出于某种原因,当我尝试将HTTP POST发送到PHP脚本时,我不断收到错误:"无法读取数据,因为它的格式不正确。

我正在使用 MAMP 作为 mySQL 服务器。

let request = NSMutableURLRequest(URL: NSURL.fileURLWithPath("/Users/robin/Programming/xcode/Projects/Quix/php_scripts/userRegister.php"))
            request.HTTPMethod = "POST"
            let postString = "email='(userEmail)&password='(userPassword)"
            request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
            print(postString)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
        if (error != nil) {
            print("error='(error)")
        }
        do {
            if let parseJSON = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
                let resultValue = parseJSON["status"] as? String
                print("result: '(resultValue)")
                var isUserRegistered:Bool = false
                if (resultValue == "Success") { isUserRegistered = true }
                var messageToDisplay:String = parseJSON["message"] as! String!
                if (!isUserRegistered) {
                    messageToDisplay = parseJSON["message"] as! String!
                }
                dispatch_async(dispatch_get_main_queue(), {
                    let myAlert = UIAlertController(title: "Alert", message: messageToDisplay, preferredStyle: UIAlertControllerStyle.Alert)
                    let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { action in
                        self.dismissViewControllerAnimated(true, completion: nil)
                    }
                    myAlert.addAction(okAction)
                    self.presentViewController(myAlert, animated: true, completion: nil)
                });

            }
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }
    task.resume()

在我的数据库中,我有表格"用户"和参数id(auto_increment),电子邮件和密码。我也在为mySQL使用端口:3306。MAMP 的标准 IP 是 127.0.0.1,我应该使用 IP:127.0.0.1 还是本地主机:3306?

您正在使用带有NSURLSession请求的文件 URL。应使用https://http://请求。 NSURLSession用于发出网络请求,而不是本地文件系统请求。因此,如果您在 iOS 模拟器上运行它,您可以使用 http://localhost/... .但是,在设备上运行它时,必须为其提供一个主机名,该主机名将解析为运行 MAMP 的计算机。

顺便说一下,如果您使用 http ,您可能需要添加 https://stackoverflow.com/a/31254874/1271826 中所述的NSExceptionDomains条目。