//
// ViewController.swift
// base64
//
// Created by zhang on 16/2/26.
// Copyright © 2016年 jin. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var name: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var messageLable: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let userDefault = NSUserDefaults.standardUserDefaults()
let userName = userDefault.valueForKey("username")
print(userName)
if userName != nil
{
self.name.text = self.decode(userName as! String)
let password = userDefault.valueForKey("password")
self.password.text = self.decode(password as! String)
}
}
@IBAction func login(sender: AnyObject) {
let username = self.name.text
let password = self.password.text
let url = NSURL(string: "http://localhost/login.php")
let request = NSMutableURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringCacheData, timeoutInterval: 10)
request.HTTPMethod = "post"
let dataString = "username=\(self.encode(username!))&password=\(self.encode(password!))"
print(dataString)
request.HTTPBody = dataString.dataUsingEncoding(NSUTF8StringEncoding)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue()) { (response:NSURLResponse?, data:NSData?, error:NSError?) -> Void in
let json:AnyObject? = try? NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
let userId:Int! = json?.valueForKey("userId") as! Int
var str = ""
if userId != nil && userId > 0
{
str = "登陆成功"
let userDefault = NSUserDefaults.standardUserDefaults()
userDefault.setObject(self.encode(username!), forKey: "username")
userDefault.setObject(self.encode(password!), forKey: "password")
userDefault.synchronize()
}
else
{
str = "登陆失败"
}
NSOperationQueue.mainQueue().addOperationWithBlock({ [weak self,str] () -> Void in
self!.messageLable.text = str
})
}
}
func encode(str:String)->String
{
// 字符串转换成d
let data = str.dataUsingEncoding(NSUTF8StringEncoding)
let encodeStr = data?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
return encodeStr!
}
func decode(str:String)->String
{
let decode = NSData(base64EncodedString: str, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
return String(data: decode!, encoding: NSUTF8StringEncoding)!
}
}