Alamofire實現JSON數據的獲取

使用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(<NSMutableURLRequest: 0x7fdad8438600> { URL: https://getinformation.sinaapp.com/login.php?password=admin&username=admin })

你發出的GET請求的內容
response的內容是

Optional(<NSHTTPURLResponse: 0x7f92d9624a10> { URL: https://getinformation.sinaapp.com/login.php?password=admin&username=admin } { status code: 200, headers {

    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";

你發出的內容的GET信息的頭 包含當前的一些信息
debugDescription的內容是以上的總和

測試的部分我是把一個簡單的PHP文件放在sae上來的下面是PHP的代碼

<?php  
$username = $_GET["username"];
$password = $_GET["password"];

$link = mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS);
$arr = array ('loginResult'=>'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語句查詢 存在對應結果時返回一組數據


動態構造了sql語句 然後查詢 輸出結果爲一個JSON數據



需要注意的是apple發送request需要向https發送以保證安全性,根據MVC設計模式的思路 我們再引入Model之後便可以把返回的數據加以利用
 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章