gpt4 book ai didi

php - Swift:如何使用 NSURLSession 查询外部数据库?

转载 作者:行者123 更新时间:2023-11-29 12:02:02 26 4
gpt4 key购买 nike

我写这个问题是因为我很难理解如何使用 Swift 实现简单的基本身份验证登录。

我的应用程序的第一个屏幕是一个简单的表单,其中包含文本字段(用户名和密码)和登录按钮。在我的 LoginViewController.swift 文件中,我将按钮链接到此:

@IBAction func doLogin(sender : AnyObject) {
}

现在的问题是我不知道如何继续下去。我在 MAMP 中有一个本地服务器,其中有一个 file.php 查询数据库并且运行良好:

<?php

$deep="";
require_once($deep."class/config.php");
$sistema = new config($deep);

if( isset($_GET["username"]) && isset($_GET["password"]) ) {
$username=mysqli_real_escape_string($sistema->dbConn,$_GET["username"]);
$password=mysqli_real_escape_string($sistema->dbConn,$_GET["password"]);
$userL=$sistema->user->allAdmin("WHERE username='".$username."' AND password='".$password."' ");

echo json_encode($userL);
}

?>

那么如何对该文件执行 GET 请求呢?我想我需要创建一个包含用户数据的 URL,如下所示:

http://localhost:8888/excogitoweb/loginM.php?username=lorenzo&password=lorenzo

但是我不知道如何继续。我如何执行此请求来检索 JSON 内容?如何检查 JSON 内容以了解登录过程是否成功?我在youtube上看过很多教程,总体this但即使我复制它们显示的代码,我总是会遇到编译错误...

最佳答案

对于“普通”GET 请求,您需要一个带有您的 url 的 NSURLRequest...就像这样:

if let requestURL: NSURL = NSURL(string: "http://localhost:8888/excogitoweb/loginM.php?username=lorenzo&password=lorenzo") as NSURL? {
let urlRequest: NSURLRequest = NSURLRequest(URL: requestURL)
let urlSession = NSURLSession.sharedSession().dataTaskWithRequest(urlRequest, completionHandler: { (data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
if let responseJSON: [String: String] = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.allZeros, error: nil) as? [String: String] {
///Here you can handle the responded JSON
}
})
urlSession.resume()
}

不要忘记,当您处理响应的 JSON 时,您正在执行后台任务...如果您想在那里执行一些 UI 操作,则需要将其分派(dispatch)到主队列

另外,建议您使用 HTTP POST 而不是 HTTP GET 来处理此类事情

更新

if let responseJSON: [[String: String]] = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.allZeros, error: nil) as? [[String: String]] {
///Here you can handle the responded JSON
}

关于php - Swift:如何使用 NSURLSession 查询外部数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com