成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS網(wǎng)絡編程異步GET方法請求

移動開發(fā) iOS
iOS異步GET方法請求,將參數(shù)直接寫在訪問路徑上。操作簡單,不過容易被外界看到,安全性不高,地址最多255字節(jié)。

同步請求用戶體驗不好,并且可以在同步方法上實現(xiàn)異步,事實上iOS SDK也提供了異步請求的方法。異步請求會使用NSURLConnection委托協(xié)議NSURLConnectionDelegate。那么iOS異步GET方法請求怎么實現(xiàn)呢?

在請求不同階段 會回調(diào)委托對象方法。NSURLConnectionDelegate協(xié)議的方法有:

connection:didReceiveData: 請求成功,開始接收數(shù)據(jù),如果數(shù)據(jù)量很多,它會被多次調(diào)用;

connection:didFailWithError: 加載數(shù)據(jù)出現(xiàn)異常;

connectionDidFinishLoading: 成功完成加載數(shù)據(jù),在connection:didReceiveData方法之后執(zhí)行;

使用異步請求的主視圖控制器MasterViewController.h代碼如下:

  1. #import <UIKit/UIKit.h> 
  2. #import “NSString+URLEncoding.h” 
  3. #import “NSNumber+Message.h” 
  4. @interface MasterViewController : UITableViewController <NSURLConnectionDelegate> 
  5. @property (strong, nonatomic) DetailViewController *detailViewController; 
  6. //保存數(shù)據(jù)列表 
  7. @property (nonatomic,strong) NSMutableArray* listData; 
  8. //接收從服務器返回數(shù)據(jù)。 
  9. @property (strong,nonatomic) NSMutableData *datas; 
  10. //重新加載表視圖 
  11. -(void)reloadView:(NSDictionary*)res; 
  12. //開始請求Web Service 
  13. -(void)startRequest; 
  14. @end 

上 面的代碼在MasterViewController定義中實現(xiàn)了NSURLConnectionDelegate協(xié)議。datas屬性用來存放從服務器 返回的數(shù)據(jù),定義為可變類型,是為了從服務器加載數(shù)據(jù)過程中不斷地追加到這個datas中。MasterViewController.m代碼如下:

  1. /* 
  2.  開始請求Web Service 
  3. */ 
  4. -(void)startRequest { 
  5. NSString *strURL = [[NSString alloc] initWithFormat: 
  6. @”http://iosbook3/mynotes/webservice.php?email=%@&type=%@&action=%@”, 
  7. @”<你的iosbook1.com用戶郵箱>”,@”JSON”,@”query”]; 
  8. NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; 
  9. NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
  10. NSURLConnection *connection = [[NSURLConnection alloc] 
  11. initWithRequest:request 
  12. delegate:self]; 
  13. if (connection) { 
  14. _datas = [NSMutableData new]; 
  15. #pragma mark- NSURLConnection 回調(diào)方法 
  16. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { ① 
  17. [_datas appendData:data]; 
  18. -(void) connection:(NSURLConnection *)connection didFailWithError: (NSError *)error { 
  19. NSLog(@”%@”,[error localizedDescription]); 
  20. - (void) connectionDidFinishLoading: (NSURLConnection*) connection {         ② 
  21. NSLog(@”請求完成…”); 
  22. NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:_datas 
  23. options:NSJSONReadingAllowFragments error:nil]; 
  24. [self reloadView:dict]; 

在第①行的connection:didReceiveData:方法中,通過[_datas appendData:data]語句不斷地接收服務器端返回的數(shù)據(jù),理解這一點是非常重要的。如果加載成功就回調(diào)第②行的 connectionDidFinishLoading:方法,這個方法被回調(diào)也意味著這次請求的結(jié)束,這時候_datas中的數(shù)據(jù)是完整的,在這里把數(shù)據(jù)發(fā)送回表示層的視圖控制器。

經(jīng)過以上步驟也就基本實現(xiàn)了iOS網(wǎng)絡編程異步GET方法請求。希望對大家有所幫助。

責任編輯:閆佳明 來源: cnblogs
相關(guān)推薦

2012-03-01 20:32:29

iOS

2009-08-21 10:17:14

C#異步網(wǎng)絡編程

2013-04-01 15:38:54

異步編程異步編程模型

2011-08-16 15:06:43

IOS開發(fā)異步請求

2013-01-07 10:44:00

JavaScriptjQueryJS

2015-08-06 13:33:22

PHPGETPOST

2015-10-27 11:06:51

PHPGETPOST

2011-08-03 10:39:06

IOS程序 HTTP 請求

2013-04-01 15:25:41

異步編程異步EMP

2020-10-15 13:29:57

javascript

2018-05-03 19:14:23

iOS開發(fā)框架API

2011-02-22 08:49:16

.NET同步異步

2011-02-22 09:09:21

.NETAsync CTP異步

2024-04-30 11:11:33

aiohttp模塊編程

2015-04-22 10:50:18

JavascriptJavascript異

2014-05-23 10:12:20

Javascript異步編程

2020-09-24 10:09:01

GETPOST前端

2017-07-13 12:12:19

前端JavaScript異步編程

2016-09-07 20:43:36

Javascript異步編程

2009-06-17 15:13:57

Java網(wǎng)絡功能編程方法
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩一区二区三区视频 | 成人免费久久 | 久久婷婷av | 亚洲综合中文字幕在线观看 | 福利视频一区二区 | 久久精品99久久 | 日本手机在线 | 久久亚洲精品国产精品紫薇 | 亚洲性综合网 | 免费观看一级毛片视频 | 中文字幕av在线 | 欧美精品一区二区三区四区五区 | 草草精品 | 久久综合一区二区三区 | 久久久99精品免费观看 | 国产精品成人在线 | 亚洲精品成人在线 | 97精品超碰一区二区三区 | 99婷婷 | 天天精品综合 | 粉嫩av| 久久亚洲欧美日韩精品专区 | 免费激情网站 | 9porny九色视频自拍 | 欧美一区二区三区国产 | 国产一区二区视频免费在线观看 | 久久久久久久久久久久久91 | 日韩av资源站 | 国产精品69毛片高清亚洲 | 国产精品中文字幕在线播放 | 精品国产乱码久久久久久a丨 | 四色成人av永久网址 | 欧美日韩国产在线观看 | 91青娱乐在线 | 婷婷国产一区 | 午夜视频免费在线观看 | 中文字幕第7页 | 成人免费网站视频 | 我爱操| 久久激情av | 日本三级全黄三级三级三级口周 |