學習網絡,不管是C/S仍是B/S首要的固然是向服務器發送請求,並獲得響應,麼有請求沒有響應,那就不叫作網絡了。ios
這邊文章向你們介紹境界一下網路異步請求。緩存
*你們不要以爲我寫的知識點太零散,我只是想給你們一個良好的,乾淨的學習環境,一次行講解太多知識容易混亂。*服務器
閒話少說,我會在代碼中詳細講解。網絡
上新鮮的代碼了。異步
// // 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