我正在使用Xcode和Swift开发iOS应用程序。
我使用SwiftyJSON.swift和以下代码获取JSON数据:
import UIKit
class ViewController: UIViewController {
var dict = NSDictionary()
@IBOutlet weak var firstLb: UILabel!
@IBOutlet weak var secondLb: UILabel!
var uasername = "TestUserName"
override func viewDidLoad() {
super.viewDidLoad()
let urlString = "http://example.com/showUserInfo.php"
if let url = NSURL(string: urlString) {
if let data = try? NSData(contentsOfURL: url, options: []) {
let json = JSON(data: data)
print(json)
let f = json[0]["name"].stringValue
let s = json[0]["age"].stringValue
firstLb.text = f
secondLb.text = s
}
}
}
}
但我希望能够将一个值POST给showUserInfo.php。
我的showUserInfo.php PHP脚本如下所示:
<?php
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
include "$root/config.php";
$username = $_POST['username'];
$stmt = $pdo->prepare('SELECT * FROM contact WHERE username = :username');
$stmt->execute(array('username' => $username));
$userData = array();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$userData[] = $row;
}
echo json_encode($userData);
?>
在我的PHP脚本中使用$username = "TestUserName";
而不是$username = $_POST['username'];
时,使用我的Swift代码从PHP脚本获取JSON数据非常有效。但我希望能够$_POST
在我的应用程序中声明的PHP脚本的特定用户名。
是否有人知道如何在不需要导入库的情况下执行此操作?
答案 0 :(得分:0)
在默认行为中,NSURL使用 GET 作为HTTP方法。您必须使用 NSMutableURLRequest 并将名为 HTTPMethod 的属性设置为POST。如果您想查看在Swift 2/3中使用帖子请求的确切示例,请访问here。
答案 1 :(得分:0)
这是Alamofire和SwiftyJSON实现
let parameters = ["username": "TestUserName"]
Alamofire.request(.POST, "http://example.com/showUserInfo.php",parameters: parameters).responseJSON { response in
debugPrint(response.result.value)
let json = JSON(data: response.data!)
print(json)
let f = json[0]["name"].stringValue
let s = json[0]["age"].stringValue
firstLb.text = f
secondLb.text = s
}