iOS 中用戶端和伺服器的 Web Service 網路通訊 (2)

來源:互聯網
上載者:User

iOS 中用戶端和伺服器的 Web Service 網路通訊 (2)

在實際的應用開發過程中,同步請求的使用者體驗並不是很好;我們都知道,Apple是很重視使用者體驗的,這一點也成為了行業的標杆,沒有使用者哪裡來的好產品,所以使用者體驗是極其重要的。貌似廢話有點多,接下來進入正題。同步請求不好,那麼就使用非同步請求的方法。在開發中,非同步請求會使用 NSURLConnetction 類的委託協議 NSURLConnectionDelegate。在請求不同階段會回調委派物件方法,具體方法如下:

connection:didReceiveData: 當請求成功時,這個方法就會開始接收資料,如果資料量很多,它會被多次調用; connection:didFailWithError: 從方法中我們也可以大體知道這個方法的作用,沒錯,就是用來處理當載入資料出現異常的時候調用的; connectionDidFinishLoading: 從方法的命名中也可以知道這個方法是用來當成功完成載入資料時調用的,但在 connection:didReceiveData: 方法之後執行。

PS:記得在.h標頭檔中的 @interface 介面中加入委託的申明 哦!

加下來是具體實現的代碼:

 * 開始請求Web Service */-(void)startRequest{            NSString *strURL = [[NSString alloc] initWithFormat:                        @"請求伺服器位址"];    NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];NSURLConnection *connection = [[NSURLConnection alloc]                                   initWithRequest:request                                   delegate:self];        if (connection) {        self.datas = [NSMutableData new];    }    }#pragma mark- NSURLConnection method- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {    [self.datas appendData:data];   //利用NSMutalbeArray數組datas不斷接收伺服器端返回的資料}-(void) connection:(NSURLConnection *)connection didFailWithError: (NSError *)error {        NSLog(@"%@",[error localizedDescription]);}//當connection:didReceiveData:方法成功接收資料後回調這個方法- (void) connectionDidFinishLoading: (NSURLConnection*) connection {    NSLog(@"請求完成...");    NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:_datas options:NSJSONReadingAllowFragments error:nil];    [self reloadView:dict];    //從服務端接收完整資料後,再把資料發送回展示層的視圖控制器}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.