學習網路,無論是C/S還是B/S首要的當然是向伺服器發送請求,並得到響應,麽有請求沒有響應,那就不叫做網路了。 這邊文章向大家介紹境界一下網路非同步請求。 *大家不要覺得我寫的知識點太零散,我只是想給大家一個良好的,乾凈的學習環境,一次行講解太多知識容易混亂。* 閑話少說,我會在代碼中詳細講解。 上新
學習網路,無論是C/S還是B/S首要的當然是向伺服器發送請求,並得到響應,麽有請求沒有響應,那就不叫做網路了。
這邊文章向大家介紹境界一下網路非同步請求。
*大家不要覺得我寫的知識點太零散,我只是想給大家一個良好的,乾凈的學習環境,一次行講解太多知識容易混亂。*
閑話少說,我會在代碼中詳細講解。
上新鮮的代碼了。
// // ViewController.m // CX-網路非同步請求 // // Created by ma c on 16/3/17. // Copyright © 2016年 xubaoaichiyu. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //由於網路太慢,在這裡就用本地的伺服器了。 NSString * urlString = [NSString stringWithFormat:@"http://localhost/tupian.jpg"]; //創建URL統一資源標識符 NSURL * url = [NSURL URLWithString:urlString]; //創建網路請求 /* cachePolicy 緩存策略 NSURLRequestUseProtocolCachePolicy = 0, //自動緩存策略 NSURLRequestReloadIgnoringLocalCacheData = 1, //每次都請求網路,無論本地是否存在緩存 NSURLRequestReturnCacheDataElseLoad = 2,//如果有緩存返回緩存,沒有就載入網路 NSURLRequestReturnCacheDataDontLoad = 3,//如果有緩存返回緩存,沒有也不載入網路 timeoutInterval 請求超時 預設超時時間是60 一般設置 10 - 20s */ // 這是最基本的方法,記住就好,重點在下麵哦。 // NSURLRequest * request = [NSURLRequest requestWithURL:url]; NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; //建立非同步連接*需要ios8及以下* //sendAsynchronousRequest 建立非同步網路連接 //queue 可以傳主隊列,或全局隊列 //[NSOperationQueue mainQueue] 調到主隊列直接更新 //[[NSOperationQueue alloc] init] 不需要調回主線程更新UI [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { //reponse 為響應信息 //data 為返回數據 //connectionError 為錯誤信息 //在這裡列印一下data NSLog(@"%@",data); //二進位信息,由於太多我截取了一部分 /* 2016-03-17 20:12:24.785 CX-網路非同步請求[2982:155113] <ffd8ffe0 00104a46 49460001 01000048 00480000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 00010000 87690004 00000001 00000026 00000000 0003a001 00030000 00010001 0000a002 00040000 00010000 02eea003 00040000 00010000 02ee0000 0000ffed 00385068 6f746f73 */ }]; } @end