iOS開發——網路Swift篇&NSURL進行資料請求(POST與GET)

來源:互聯網
上載者:User

標籤:

NSURL進行資料請求(POST與GET) 使用Swift進行iOS開發時,不可避免的要進行遠端資料擷取和提交。其資料請求的方式既可能是POST也可能是GET。同不管是POST還是GET又可以分為同步請求和非同步請求。下面通過四個例子來進行示範。 1,使用POST方式提交資料(使用者id和分數)(1)同步請求
 1 //儲存分數 2 func saveScore(score:Int, userid:String) 3 { 4     let urlString:String = "http://hangge.com/" 5     var url:NSURL! 6     url = NSURL(string:urlString) 7     var request = NSMutableURLRequest(URL:url) 8     var body = "score=\(score)&user=\(userid)" 9     //編碼POST資料10     var postData = body.dataUsingEncoding(NSUTF8StringEncoding)11     //保用 POST 提交12     request.HTTPMethod = "POST"13     request.HTTPBody = postData14      15     //響應對象16     var response:NSURLResponse?17     //錯誤對象18     var error:NSError?19      20     //發出請求21     var received:NSData? = NSURLConnection.sendSynchronousRequest(request,22         returningResponse: &response, error: &error)23      24     if(error != nil){25         println(error?.code)26         println(error?.description)27     }else{28         var datastring = NSString(data:received!, encoding: NSUTF8StringEncoding)29         println(datastring)30     }31 }

 


(2)非同步請求
 1 import UIKit 2   3 class ScoreController:NSObject, NSURLConnectionDataDelegate 4 { 5     //儲存分數 6     func saveScore(score:Int, userid:String) 7     { 8         let urlString:String = "http://hangge.com/savescore.php" 9         var url:NSURL!10         url = NSURL(string:urlString)11         var request = NSMutableURLRequest(URL:url)12         var body = "score=\(score)&user=\(userid)"13         //編碼POST資料14         var postData = body.dataUsingEncoding(NSASCIIStringEncoding)15         //保用 POST 提交16         request.HTTPMethod = "POST"17         request.HTTPBody = postData18         var conn:NSURLConnection!19         conn = NSURLConnection(request: request,delegate: self)20         conn.start()21         println(conn)22     }23         24     func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!)25     {26         println("請求成功!");27         println(response)28     }29      30     func connection(connection: NSURLConnection!, didReceiveData data: NSData!)31     {32         println("請求成功1!");33         var datastring = NSString(data:data, encoding: NSUTF8StringEncoding)34         println(datastring)35     }36      37     func connectionDidFinishLoading(connection: NSURLConnection!)38     {39         println("請求成功2!");40     }41 }

 


2,使用GET方式擷取資料(使用者id對應的分數)(1)同步請求
 1 //擷取分數 2 func getScore(user:String){ 3       4     let urlString:String="http://hangge.com/getscore.php?user=\(user)" 5     var url:NSURL! 6     url = NSURL(string:urlString) 7     var request = NSMutableURLRequest(URL:url) 8     request.HTTPMethod = "GET" 9      10     //響應對象11     var response:NSURLResponse?12     //錯誤對象13     var error:NSError?14      15     //發出請求16     var received:NSData? = NSURLConnection.sendSynchronousRequest(request,17         returningResponse: &response, error: &error)18      19     if(error != nil){20         println(error?.code)21         println(error?.description)22     }else{23         var datastring = NSString(data:received!, encoding: NSUTF8StringEncoding)24         println(datastring)25     }26 }

 


(2)非同步請求
 1 import UIKit 2   3 class ScoreController:NSObject, NSURLConnectionDataDelegate 4 {     5     //擷取分數 6     func getScore(user:String) 7     { 8         let urlString:String="http://hangge.com/getscore.php?user=\(user)" 9         var url:NSURL!10         url = NSURL(string:urlString)11         var request = NSMutableURLRequest(URL:url)12          13         var body = "user=\(user)"14         request.HTTPMethod = "GET"15         var conn:NSURLConnection!16         conn = NSURLConnection(request: request,delegate: self)17         conn.start()18         println(conn)19     }20      21     func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!)22     {23         println("請求成功!");24         println(response)25     }26      27     func connection(connection: NSURLConnection!, didReceiveData data: NSData!)28     {29         println("請求成功1!");30         var datastring = NSString(data:data, encoding: NSUTF8StringEncoding)31         println(datastring)32         //解析 JSON 資料33         var json : AnyObject! = NSJSONSerialization.JSONObjectWithData(data,34             options:NSJSONReadingOptions.AllowFragments,error:nil)35          36         var score = json.objectForKey("score") as Int37         println(score)38     }39      40     func connectionDidFinishLoading(connection: NSURLConnection!)41     {42         println("請求成功2!");43     }44 }

 

 

iOS開發——網路Swift篇&NSURL進行資料請求(POST與GET)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.