使用Alamofire实现了JSON数据的获取
首先是导入Alamofire包 前往https://github.com/Alamofire/Alamofire获取最新版本
解压完成后将其中的Alamofire.xcodeproj文件copy到你的工程文件下 然后在工程的General -> Embedded Binaries点击+号 导入iOS用的Alamofire框架 后面改为optional
然后在swift文件里直接import就行了
下面是完成的代码
import UIKit
import Alamofire
class ViewController: UIViewController {
//目标网址
var targetURL: String = "https://getinformation.sinaapp.com/login.php"
//获取JSON数据
func getJsonData() {
Alamofire.request(.GET, targetURL, parameters: ["username": "admin", "password": "admin"])
.responseJSON { closureResponse in
self.response = closureResponse
print(closureResponse.result.value)
}
}
override func viewDidLoad() {
super.viewDidLoad()
getJsonData()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
这边使用的是GET方法传递数据 当然Alamofire也支持POST方法
Alamofire.request(method, URL, parameters, encoding, headers)这是完整的输入参数 由于传输回来的参数是encoding过的JSON所以不需要再设置encoding
使用的是responseJSON方法闭包 服务器返回的数据都在closureResponse中
data的内容是Optional(<7b226c6f 67696e52 6573756c 74223a22 73756363 65737322 2c226973 43686563 6b496e22 3a223022 7d2020>)
是返回内容的utf-8编码值
description的内容是SUCCESS: { isCheckIn = 0; loginResult = success;}
描述返回是否成功 并附带返回数据
request的内容是
Optional(
Optional(
Connection = "keep-alive";
"Content-Encoding" = gzip;
"Content-Type" = "text/html";
Date = "Mon, 16 Nov 2015 13:46:17 GMT";
Server = "openresty/1.7.10.1";
"Transfer-Encoding" = Identity;
Via = "10.67.21.26";
测试的部分我是把一个简单的PHP文件放在sae上来的下面是PHP的代码
'success','isCheckIn'=> '0');
if ($link) {
# code...
mysql_select_db("app_getinformation");
$sql = "SELECT userid FROM studentInformation WHERE username = '$username' AND password = '$password'";
$result = mysql_query($sql);
$rowcount = mysql_num_rows($result);
if($rowcount!=0) {
echo json_encode($arr);
}
}
?>
$_GET["parameter"]用于获取提交的对应内容
$link里面是sae官方提供的mysql连接数据 判断连接成功后选择对应的数据库并通过sql语句查询 存在对应结果时返回一组数据
需要注意的是apple发送request需要向https发送以保证安全性,根据MVC设计模式的思路 我们再引入Model之后便可以把返回的数据加以利用