swift開發網絡篇 - post 請求

    /**

     所有網絡請求,統一使用異步請求!

     

     在今後的開發中,如果使用簡單的get/head請求,可以用NSURLConnction異步方法

     GET/POST/PUT/DELETE/HEAD

     

     GET

     1> URL

     2> NSURLRequest

     3> NSURLConnction 異步

     

     POST

     1> URL

     2> NSMutableURLRequest

     .httpMethod = @"POST";

     str firebug直接粘貼,或者自己寫

     變量名1=數值1&變量名2=數值2

     

     .httpData = [str dataUsingEncoding:NSUTF8StringEncoding];

     3> NSURLConnction 異步

     

     */

    overridefunc viewDidLoad() {

        super.viewDidLoad()

        self.postLogon()

    }

    func  postLogon(){

        var  path ="http://xxxxxxxx.com"

        var params:NSMutableDictionary = NSMutableDictionary()

        params["mobile_phone"] ="1xxxxxxxxx5"

        params["password"] ="123456"

        

        var headparams:NSMutableDictionary = NSMutableDictionary()

        headparams["X-xxxx-App-Token"] = "xxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx"

        // 1. URL

        var url:NSURL = NSURL(string: path)!

        

        // 2. 請求(可以改的請求)

        var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)

        // ? POST

        // 默認就是GET請求

        request.HTTPMethod ="POST"

        

        // ? 數據體

        var jsonData:NSData? =nil

        do {

            jsonData  = tryNSJSONSerialization.dataWithJSONObject(params, options:NSJSONWritingOptions.PrettyPrinted)

        } catch {

            

        }

        // 將字符串轉換成數據

        request.HTTPBody = jsonData

        

        request.setValue("xxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx", forHTTPHeaderField:"X-xxxx-App-Token")

        NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue()) { (res, data, error)in

            

                let  str =NSString(data: data!, encoding:NSUTF8StringEncoding)

                print(str)

            

        }

    }

    

    

    

    

    

//#pragma mark - POST登錄

    func posttoken()

    {

        

        var path ="http://xxxxxxxxx/app/token/request_token"

        let params:NSMutableDictionary = NSMutableDictionary()

        params["app_id"] = "000000000000000000000"

        params["app_secret"] ="000000000000000000000"

        params["mobile_id"] ="000000000000000000000"

        

        // 1. URL

        var url:NSURL = NSURL(string: path)!

        

        // 2. 請求(可以改的請求)

        var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)

        // ? POST

        // 默認就是GET請求

        request.HTTPMethod ="POST"

        // ? 數據體

        var jsonData:NSData? =nil

        do {

            jsonData  = tryNSJSONSerialization.dataWithJSONObject(params, options:NSJSONWritingOptions.PrettyPrinted)

        } catch {

            

        }

        // 將字符串轉換成數據

        request.HTTPBody = jsonData

        

        // 3. 連接,異步

        NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue()) { (res, data, error)in

            if(error ==nil){

                var dict:NSDictionary? =nil

                do {

                    dict  = try   NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.init(rawValue:0)) as!NSDictionary

                } catch {

                    

                }

                  //str轉換爲字典

                //{"data":

                       //{"token":"2e2f6b61-8101-49cf-b7dd-7cfea6f0c499","expire_at":1462885914}

                 //  }

                //data的值

                var data:NSDictionary = dict!["data"asNSDictionary

                //token的值

                var token = data["token"]as! String

                print(token)

                

            }

        }

        

    }


}

發佈了11 篇原創文章 · 獲贊 15 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章